mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-07-26 23:43:06 +02:00
Correct rights check in monoforums.
This commit is contained in:
parent
075f754a71
commit
646b852717
2 changed files with 7 additions and 3 deletions
|
@ -343,7 +343,7 @@ void ChannelData::setMonoforumLink(ChannelData *link) {
|
||||||
_monoforumLink = link;
|
_monoforumLink = link;
|
||||||
link->setMonoforumLink(this);
|
link->setMonoforumLink(this);
|
||||||
session().changes().peerUpdated(this, UpdateFlag::MonoforumLink);
|
session().changes().peerUpdated(this, UpdateFlag::MonoforumLink);
|
||||||
if (isMegagroup() && (link->amCreator() || link->hasAdminRights())) {
|
if (isMegagroup() && link->canAccessMonoforum()) {
|
||||||
setFlags(flags() | Flag::MonoforumAdmin);
|
setFlags(flags() | Flag::MonoforumAdmin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -656,6 +656,10 @@ bool ChannelData::canDeleteStories() const {
|
||||||
|| (adminRights() & AdminRight::DeleteStories);
|
|| (adminRights() & AdminRight::DeleteStories);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ChannelData::canAccessMonoforum() const {
|
||||||
|
return canPostMessages();
|
||||||
|
}
|
||||||
|
|
||||||
bool ChannelData::canPostPaidMedia() const {
|
bool ChannelData::canPostPaidMedia() const {
|
||||||
return canPostMessages() && (flags() & Flag::PaidMediaAllowed);
|
return canPostMessages() && (flags() & Flag::PaidMediaAllowed);
|
||||||
}
|
}
|
||||||
|
@ -836,9 +840,8 @@ void ChannelData::setAdminRights(ChatAdminRights rights) {
|
||||||
UpdateFlag::Rights | UpdateFlag::Admins | UpdateFlag::BannedUsers);
|
UpdateFlag::Rights | UpdateFlag::Admins | UpdateFlag::BannedUsers);
|
||||||
if (isBroadcast() && _monoforumLink) {
|
if (isBroadcast() && _monoforumLink) {
|
||||||
const auto flags = _monoforumLink->flags();
|
const auto flags = _monoforumLink->flags();
|
||||||
const auto admin = (amCreator() || hasAdminRights());
|
|
||||||
_monoforumLink->setFlags((flags & ~Flag::MonoforumAdmin)
|
_monoforumLink->setFlags((flags & ~Flag::MonoforumAdmin)
|
||||||
| (admin ? Flag::MonoforumAdmin : Flag()));
|
| (canAccessMonoforum() ? Flag::MonoforumAdmin : Flag()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -396,6 +396,7 @@ public:
|
||||||
[[nodiscard]] bool canEditStories() const;
|
[[nodiscard]] bool canEditStories() const;
|
||||||
[[nodiscard]] bool canDeleteStories() const;
|
[[nodiscard]] bool canDeleteStories() const;
|
||||||
[[nodiscard]] bool canPostPaidMedia() const;
|
[[nodiscard]] bool canPostPaidMedia() const;
|
||||||
|
[[nodiscard]] bool canAccessMonoforum() const;
|
||||||
[[nodiscard]] bool hiddenPreHistory() const;
|
[[nodiscard]] bool hiddenPreHistory() const;
|
||||||
[[nodiscard]] bool canViewMembers() const;
|
[[nodiscard]] bool canViewMembers() const;
|
||||||
[[nodiscard]] bool canViewAdmins() const;
|
[[nodiscard]] bool canViewAdmins() const;
|
||||||
|
|
Loading…
Add table
Reference in a new issue