mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Moderation tweaks (#2548)
* Only allow admins to see the roles and permissions screen. * Hide the selection checkbox on Admins when changing roles. * Show an empty state for banned users. * Add separate actions for ban and remove. * Implement reset permissions and demote self alerts. * Add tests for resetting permissions and demoting self. * Add a warning when promoting someone to administrator.
This commit is contained in:
@@ -2750,6 +2750,44 @@ class RoomProxyMock: RoomProxyProtocol {
|
||||
return applyPowerLevelChangesReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - resetPowerLevels
|
||||
|
||||
var resetPowerLevelsCallsCount = 0
|
||||
var resetPowerLevelsCalled: Bool {
|
||||
return resetPowerLevelsCallsCount > 0
|
||||
}
|
||||
var resetPowerLevelsReturnValue: Result<RoomPowerLevels, RoomProxyError>!
|
||||
var resetPowerLevelsClosure: (() async -> Result<RoomPowerLevels, RoomProxyError>)?
|
||||
|
||||
func resetPowerLevels() async -> Result<RoomPowerLevels, RoomProxyError> {
|
||||
resetPowerLevelsCallsCount += 1
|
||||
if let resetPowerLevelsClosure = resetPowerLevelsClosure {
|
||||
return await resetPowerLevelsClosure()
|
||||
} else {
|
||||
return resetPowerLevelsReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - suggestedRole
|
||||
|
||||
var suggestedRoleForCallsCount = 0
|
||||
var suggestedRoleForCalled: Bool {
|
||||
return suggestedRoleForCallsCount > 0
|
||||
}
|
||||
var suggestedRoleForReceivedUserID: String?
|
||||
var suggestedRoleForReceivedInvocations: [String] = []
|
||||
var suggestedRoleForReturnValue: Result<RoomMemberRole, RoomProxyError>!
|
||||
var suggestedRoleForClosure: ((String) async -> Result<RoomMemberRole, RoomProxyError>)?
|
||||
|
||||
func suggestedRole(for userID: String) async -> Result<RoomMemberRole, RoomProxyError> {
|
||||
suggestedRoleForCallsCount += 1
|
||||
suggestedRoleForReceivedUserID = userID
|
||||
suggestedRoleForReceivedInvocations.append(userID)
|
||||
if let suggestedRoleForClosure = suggestedRoleForClosure {
|
||||
return await suggestedRoleForClosure(userID)
|
||||
} else {
|
||||
return suggestedRoleForReturnValue
|
||||
}
|
||||
}
|
||||
//MARK: - updatePowerLevelsForUsers
|
||||
|
||||
var updatePowerLevelsForUsersCallsCount = 0
|
||||
|
||||
Reference in New Issue
Block a user