mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-09-10 06:27:15 +00:00
Fix permissions in legacy groups
This commit is contained in:
parent
4f51cbc942
commit
d34302be47
@ -620,8 +620,12 @@ private func channelPermissionsControllerEntries(context: AccountContext, presen
|
|||||||
entries.append(.permissionsHeader(presentationData.theme, presentationData.strings.GroupInfo_Permissions_SectionTitle))
|
entries.append(.permissionsHeader(presentationData.theme, presentationData.strings.GroupInfo_Permissions_SectionTitle))
|
||||||
var rightIndex: Int = 0
|
var rightIndex: Int = 0
|
||||||
for (rights, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
for (rights, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
||||||
|
var isSelected = !effectiveRightsFlags.contains(rights)
|
||||||
|
|
||||||
var subItems: [SubPermission] = []
|
var subItems: [SubPermission] = []
|
||||||
if rights == .banSendMedia {
|
if rights == .banSendMedia {
|
||||||
|
isSelected = banSendMediaSubList().allSatisfy({ !effectiveRightsFlags.contains($0.0) })
|
||||||
|
|
||||||
for (subRight, _) in banSendMediaSubList() {
|
for (subRight, _) in banSendMediaSubList() {
|
||||||
let subRightEnabled = true
|
let subRightEnabled = true
|
||||||
|
|
||||||
@ -629,7 +633,7 @@ private func channelPermissionsControllerEntries(context: AccountContext, presen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
entries.append(.permission(presentationData.theme, rightIndex, stringForGroupPermission(strings: presentationData.strings, right: rights, isForum: false), !effectiveRightsFlags.contains(rights), rights, true, subItems, state.expandedPermissions.contains(rights)))
|
entries.append(.permission(presentationData.theme, rightIndex, stringForGroupPermission(strings: presentationData.strings, right: rights, isForum: false), isSelected, rights, true, subItems, state.expandedPermissions.contains(rights)))
|
||||||
rightIndex += 1
|
rightIndex += 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -793,14 +797,40 @@ public func channelPermissionsController(context: AccountContext, updatedPresent
|
|||||||
} else {
|
} else {
|
||||||
effectiveRightsFlags = TelegramChatBannedRightsFlags()
|
effectiveRightsFlags = TelegramChatBannedRightsFlags()
|
||||||
}
|
}
|
||||||
if value {
|
|
||||||
effectiveRightsFlags.remove(rights)
|
if rights == .banSendMedia {
|
||||||
effectiveRightsFlags = effectiveRightsFlags.subtracting(groupPermissionDependencies(rights))
|
if value {
|
||||||
|
effectiveRightsFlags.remove(rights)
|
||||||
|
for item in banSendMediaSubList() {
|
||||||
|
effectiveRightsFlags.remove(item.0)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
effectiveRightsFlags.insert(rights)
|
||||||
|
for (right, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
||||||
|
if groupPermissionDependencies(right).contains(rights) {
|
||||||
|
effectiveRightsFlags.insert(right)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for item in banSendMediaSubList() {
|
||||||
|
effectiveRightsFlags.insert(item.0)
|
||||||
|
for (right, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
||||||
|
if groupPermissionDependencies(right).contains(item.0) {
|
||||||
|
effectiveRightsFlags.insert(right)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
effectiveRightsFlags.insert(rights)
|
if value {
|
||||||
for (right, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
effectiveRightsFlags.remove(rights)
|
||||||
if groupPermissionDependencies(right).contains(rights) {
|
effectiveRightsFlags = effectiveRightsFlags.subtracting(groupPermissionDependencies(rights))
|
||||||
effectiveRightsFlags.insert(right)
|
} else {
|
||||||
|
effectiveRightsFlags.insert(rights)
|
||||||
|
for (right, _) in allGroupPermissionList(peer: .legacyGroup(group), expandMedia: false) {
|
||||||
|
if groupPermissionDependencies(right).contains(rights) {
|
||||||
|
effectiveRightsFlags.insert(right)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -778,6 +778,12 @@ public final class ShareController: ViewController {
|
|||||||
banSendType = true
|
banSendType = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if media is TelegramMediaContact || media is TelegramMediaMap {
|
||||||
|
if case let .channel(channel) = peer, channel.hasBannedPermission(.banSendText) != nil {
|
||||||
|
banSendType = true
|
||||||
|
} else if case let .legacyGroup(group) = peer, group.hasBannedPermission(.banSendText) {
|
||||||
|
banSendType = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if banSendType {
|
if banSendType {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user