mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +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:
+20
@@ -17,13 +17,33 @@
|
||||
import Foundation
|
||||
|
||||
enum RoomRolesAndPermissionsScreenViewModelAction {
|
||||
/// The user would like to edit member roles.
|
||||
case editRoles(RoomRolesAndPermissionsScreenRole)
|
||||
/// The user would like to edit room permissions.
|
||||
case editPermissions(RoomRolesAndPermissionsScreenPermissionsGroup)
|
||||
/// The user has demoted themself.
|
||||
case demotedOwnUser
|
||||
}
|
||||
|
||||
struct RoomRolesAndPermissionsScreenViewState: BindableState {
|
||||
/// The number of administrators in the room.
|
||||
var administratorCount: Int?
|
||||
/// The number of moderators in the room.
|
||||
var moderatorCount: Int?
|
||||
var bindings = RoomRolesAndPermissionsScreenViewStateBindings()
|
||||
}
|
||||
|
||||
struct RoomRolesAndPermissionsScreenViewStateBindings {
|
||||
var alertInfo: AlertInfo<RoomRolesAndPermissionsScreenAlertType>?
|
||||
}
|
||||
|
||||
enum RoomRolesAndPermissionsScreenAlertType {
|
||||
/// Ask the user which role they would like to demote themself to.
|
||||
case editOwnRole
|
||||
/// Confirm that the user would like to reset the room's permissions.
|
||||
case resetConfirmation
|
||||
/// An error occurred.
|
||||
case error
|
||||
}
|
||||
|
||||
enum RoomRolesAndPermissionsScreenViewAction {
|
||||
|
||||
Reference in New Issue
Block a user