started implementing the logic behind the access type and the creation parameters

This commit is contained in:
Mauro Romito
2026-01-19 18:21:01 +01:00
committed by Mauro
parent ed892fee94
commit 4fba0d1ce6
5 changed files with 109 additions and 18 deletions

View File

@@ -513,7 +513,7 @@ class ClientProxy: ClientProxyProtocol {
Self.standardSpaceCreationPowerLevelOverrides
}
} else {
if accessType == .askToJoin {
if accessType.isAskToJoin {
Self.knockingRoomCreationPowerLevelOverrides
} else {
Self.roomCreationPowerLevelOverrides
@@ -1372,7 +1372,7 @@ private extension CreateRoomAccessType {
switch self {
case .public:
false
case .askToJoin, .private:
default:
true
}
}
@@ -1393,8 +1393,21 @@ private extension CreateRoomAccessType {
switch self {
case .askToJoin:
.knock
case .spaceMembers(let spaceID):
.restricted(rules: [.roomMembership(roomId: spaceID)])
case .askToJoinWithSpaceMembers(let spaceID):
.knockRestricted(rules: [.roomMembership(roomId: spaceID)])
case .private, .public:
nil
}
}
var isAskToJoin: Bool {
switch self {
case .askToJoin, .askToJoinWithSpaceMembers:
true
default:
false
}
}
}