Merge pull request #5908 from element-hq/feature/fga/space_settings_iteration
Change : space settings iteration
This commit is contained in:
commit
8266902ec2
78 changed files with 428 additions and 205 deletions
|
|
@ -23,6 +23,9 @@ import kotlinx.coroutines.flow.map
|
|||
* Provides information about the permissions of users in a room.
|
||||
*/
|
||||
interface RoomPermissions : AutoCloseable {
|
||||
/**
|
||||
* Returns true if the current user is able to ban from the room.
|
||||
*/
|
||||
fun canOwnUserBan(): Boolean
|
||||
|
||||
/**
|
||||
|
|
@ -31,7 +34,7 @@ interface RoomPermissions : AutoCloseable {
|
|||
fun canOwnUserInvite(): Boolean
|
||||
|
||||
/**
|
||||
* Returns true if the current user is able to kick in the room.
|
||||
* Returns true if the current user is able to kick from the room.
|
||||
*/
|
||||
fun canOwnUserKick(): Boolean
|
||||
|
||||
|
|
@ -128,10 +131,18 @@ interface RoomPermissions : AutoCloseable {
|
|||
fun canUserTriggerRoomNotification(userId: UserId): Boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the current user can edit roles and permissions in the room ie. can send
|
||||
* a power levels state event.
|
||||
*/
|
||||
fun RoomPermissions.canEditRolesAndPermissions(): Boolean {
|
||||
return canOwnUserSendState(StateEventType.ROOM_POWER_LEVELS)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the current user can start a call in the room ie. can send
|
||||
* a call member state event.
|
||||
*/
|
||||
fun RoomPermissions.canCall(): Boolean {
|
||||
return canOwnUserSendState(StateEventType.CALL_MEMBER)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ data class RoomPowerLevelsValues(
|
|||
val ban: Long,
|
||||
val invite: Long,
|
||||
val kick: Long,
|
||||
val sendEvents: Long,
|
||||
val eventsDefault: Long,
|
||||
val stateDefault: Long,
|
||||
val redactEvents: Long,
|
||||
val roomName: Long,
|
||||
val roomAvatar: Long,
|
||||
|
|
|
|||
|
|
@ -397,10 +397,12 @@ class JoinedRustRoom(
|
|||
invite = roomPowerLevelsValues.invite,
|
||||
kick = roomPowerLevelsValues.kick,
|
||||
redact = roomPowerLevelsValues.redactEvents,
|
||||
eventsDefault = roomPowerLevelsValues.sendEvents,
|
||||
stateDefault = roomPowerLevelsValues.stateDefault,
|
||||
eventsDefault = roomPowerLevelsValues.eventsDefault,
|
||||
roomName = roomPowerLevelsValues.roomName,
|
||||
roomAvatar = roomPowerLevelsValues.roomAvatar,
|
||||
roomTopic = roomPowerLevelsValues.roomTopic,
|
||||
spaceChild = roomPowerLevelsValues.spaceChild,
|
||||
)
|
||||
innerRoom.applyPowerLevelChanges(changes)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ object RoomPowerLevelsValuesMapper {
|
|||
ban = values.ban,
|
||||
invite = values.invite,
|
||||
kick = values.kick,
|
||||
sendEvents = values.eventsDefault,
|
||||
eventsDefault = values.eventsDefault,
|
||||
stateDefault = values.stateDefault,
|
||||
redactEvents = values.redact,
|
||||
roomName = values.roomName,
|
||||
roomAvatar = values.roomAvatar,
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@ fun defaultFfiRoomPowerLevelValues() = RoomPowerLevelsValues(
|
|||
invite = 0,
|
||||
kick = 50,
|
||||
eventsDefault = 0,
|
||||
stateDefault = 50,
|
||||
redact = 50,
|
||||
roomName = 100,
|
||||
roomAvatar = 100,
|
||||
roomTopic = 100,
|
||||
stateDefault = 0,
|
||||
roomName = 50,
|
||||
roomAvatar = 50,
|
||||
roomTopic = 50,
|
||||
spaceChild = 50,
|
||||
usersDefault = 0,
|
||||
spaceChild = 100,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -37,8 +37,9 @@ class RoomPowerLevelsValuesMapperTest {
|
|||
ban = 1,
|
||||
invite = 2,
|
||||
kick = 3,
|
||||
sendEvents = 5,
|
||||
redactEvents = 4,
|
||||
eventsDefault = 5,
|
||||
stateDefault = 6,
|
||||
roomName = 8,
|
||||
roomAvatar = 9,
|
||||
roomTopic = 10,
|
||||
|
|
|
|||
|
|
@ -211,10 +211,11 @@ fun defaultRoomPowerLevelValues() = RoomPowerLevelsValues(
|
|||
ban = 50,
|
||||
invite = 0,
|
||||
kick = 50,
|
||||
sendEvents = 0,
|
||||
eventsDefault = 0,
|
||||
stateDefault = 50,
|
||||
redactEvents = 50,
|
||||
roomName = 100,
|
||||
roomAvatar = 100,
|
||||
roomTopic = 100,
|
||||
spaceChild = 100,
|
||||
roomName = 50,
|
||||
roomAvatar = 50,
|
||||
roomTopic = 50,
|
||||
spaceChild = 50,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue