mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Permission and search UI improvements
This commit is contained in:
@@ -3,7 +3,10 @@ import Postbox
|
||||
|
||||
|
||||
public enum TelegramChannelPermission {
|
||||
case sendMessages
|
||||
case sendText
|
||||
case sendPhoto
|
||||
case sendVideo
|
||||
case sendSomething
|
||||
case pinMessages
|
||||
case manageTopics
|
||||
case createTopics
|
||||
@@ -30,7 +33,7 @@ public extension TelegramChannel {
|
||||
return true
|
||||
}
|
||||
switch permission {
|
||||
case .sendMessages:
|
||||
case .sendText:
|
||||
if case .broadcast = self.info {
|
||||
if let adminRights = self.adminRights {
|
||||
return adminRights.rights.contains(.canPostMessages)
|
||||
@@ -41,10 +44,80 @@ public extension TelegramChannel {
|
||||
if let _ = self.adminRights {
|
||||
return true
|
||||
}
|
||||
if let bannedRights = self.bannedRights, bannedRights.flags.contains(.banSendMessages) {
|
||||
if let bannedRights = self.bannedRights, bannedRights.flags.contains(.banSendText) {
|
||||
return false
|
||||
}
|
||||
if let defaultBannedRights = self.defaultBannedRights, defaultBannedRights.flags.contains(.banSendMessages) {
|
||||
if let defaultBannedRights = self.defaultBannedRights, defaultBannedRights.flags.contains(.banSendText) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
case .sendPhoto:
|
||||
if case .broadcast = self.info {
|
||||
if let adminRights = self.adminRights {
|
||||
return adminRights.rights.contains(.canPostMessages)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if let _ = self.adminRights {
|
||||
return true
|
||||
}
|
||||
if let bannedRights = self.bannedRights, bannedRights.flags.contains(.banSendPhotos) {
|
||||
return false
|
||||
}
|
||||
if let defaultBannedRights = self.defaultBannedRights, defaultBannedRights.flags.contains(.banSendPhotos) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
case .sendVideo:
|
||||
if case .broadcast = self.info {
|
||||
if let adminRights = self.adminRights {
|
||||
return adminRights.rights.contains(.canPostMessages)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if let _ = self.adminRights {
|
||||
return true
|
||||
}
|
||||
if let bannedRights = self.bannedRights, bannedRights.flags.contains(.banSendVideos) {
|
||||
return false
|
||||
}
|
||||
if let defaultBannedRights = self.defaultBannedRights, defaultBannedRights.flags.contains(.banSendVideos) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
case .sendSomething:
|
||||
if case .broadcast = self.info {
|
||||
if let adminRights = self.adminRights {
|
||||
return adminRights.rights.contains(.canPostMessages)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if let _ = self.adminRights {
|
||||
return true
|
||||
}
|
||||
|
||||
let flags: TelegramChatBannedRightsFlags = [
|
||||
.banSendText,
|
||||
.banSendInstantVideos,
|
||||
.banSendVoice,
|
||||
.banSendPhotos,
|
||||
.banSendVideos,
|
||||
.banSendStickers,
|
||||
.banSendPolls,
|
||||
.banSendFiles,
|
||||
.banSendInline
|
||||
]
|
||||
|
||||
if let bannedRights = self.bannedRights, bannedRights.flags.intersection(flags) == flags {
|
||||
return false
|
||||
}
|
||||
if let defaultBannedRights = self.defaultBannedRights, defaultBannedRights.flags.intersection(flags) == flags {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user