mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-07-25 23:13:11 +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;
|
||||
link->setMonoforumLink(this);
|
||||
session().changes().peerUpdated(this, UpdateFlag::MonoforumLink);
|
||||
if (isMegagroup() && (link->amCreator() || link->hasAdminRights())) {
|
||||
if (isMegagroup() && link->canAccessMonoforum()) {
|
||||
setFlags(flags() | Flag::MonoforumAdmin);
|
||||
}
|
||||
}
|
||||
|
@ -656,6 +656,10 @@ bool ChannelData::canDeleteStories() const {
|
|||
|| (adminRights() & AdminRight::DeleteStories);
|
||||
}
|
||||
|
||||
bool ChannelData::canAccessMonoforum() const {
|
||||
return canPostMessages();
|
||||
}
|
||||
|
||||
bool ChannelData::canPostPaidMedia() const {
|
||||
return canPostMessages() && (flags() & Flag::PaidMediaAllowed);
|
||||
}
|
||||
|
@ -836,9 +840,8 @@ void ChannelData::setAdminRights(ChatAdminRights rights) {
|
|||
UpdateFlag::Rights | UpdateFlag::Admins | UpdateFlag::BannedUsers);
|
||||
if (isBroadcast() && _monoforumLink) {
|
||||
const auto flags = _monoforumLink->flags();
|
||||
const auto admin = (amCreator() || hasAdminRights());
|
||||
_monoforumLink->setFlags((flags & ~Flag::MonoforumAdmin)
|
||||
| (admin ? Flag::MonoforumAdmin : Flag()));
|
||||
| (canAccessMonoforum() ? Flag::MonoforumAdmin : Flag()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -396,6 +396,7 @@ public:
|
|||
[[nodiscard]] bool canEditStories() const;
|
||||
[[nodiscard]] bool canDeleteStories() const;
|
||||
[[nodiscard]] bool canPostPaidMedia() const;
|
||||
[[nodiscard]] bool canAccessMonoforum() const;
|
||||
[[nodiscard]] bool hiddenPreHistory() const;
|
||||
[[nodiscard]] bool canViewMembers() const;
|
||||
[[nodiscard]] bool canViewAdmins() const;
|
||||
|
|
Loading…
Add table
Reference in a new issue