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 cea365ac97
commit 204fa5b0ca
5 changed files with 109 additions and 18 deletions
@@ -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
}
}
}
@@ -48,14 +48,16 @@ enum SlidingSyncConstants {
static let maximumVisibleRangeSize = 30
}
enum CreateRoomAccessType: CaseIterable {
enum CreateRoomAccessType: Equatable {
case `public`
case spaceMembers(spaceID: String)
case askToJoinWithSpaceMembers(spaceID: String)
case askToJoin
case `private`
var isPrivate: Bool {
switch self {
case .private:
case .private, .spaceMembers, .askToJoinWithSpaceMembers:
true
case .public, .askToJoin:
false