mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Last Owner should edit admins, and not leave when is last (#4372)
This commit is contained in:
@@ -13334,11 +13334,6 @@ class RoomMemberProxyMock: RoomMemberProxyProtocol, @unchecked Sendable {
|
||||
set(value) { underlyingPowerLevel = value }
|
||||
}
|
||||
var underlyingPowerLevel: RoomPowerLevel!
|
||||
var role: RoomMemberRole {
|
||||
get { return underlyingRole }
|
||||
set(value) { underlyingRole = value }
|
||||
}
|
||||
var underlyingRole: RoomMemberRole!
|
||||
|
||||
}
|
||||
class RoomMembershipDetailsProxyMock: RoomMembershipDetailsProxyProtocol, @unchecked Sendable {
|
||||
|
||||
@@ -82,7 +82,7 @@ private extension RoomMember {
|
||||
powerLevel: proxy.powerLevel.rustPowerLevel,
|
||||
normalizedPowerLevel: proxy.powerLevel.rustPowerLevel,
|
||||
isIgnored: proxy.isIgnored,
|
||||
suggestedRoleForPowerLevel: proxy.role,
|
||||
suggestedRoleForPowerLevel: proxy.role.rustRole,
|
||||
membershipChangeReason: proxy.membershipChangeReason)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ extension JoinedRoomProxyMock {
|
||||
guard case .success(let member) = await self?.getMember(userID: userID) else {
|
||||
return .failure(.sdkError(RoomProxyMockError.generic))
|
||||
}
|
||||
return .success(member.role)
|
||||
return .success(member.role.rustRole)
|
||||
}
|
||||
updatePowerLevelsForUsersReturnValue = .success(())
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@ struct RoomMemberProxyMockConfiguration {
|
||||
var isIgnored = false
|
||||
|
||||
var powerLevel = RoomPowerLevel(value: 0)
|
||||
var role = RoomMemberRole.user
|
||||
}
|
||||
|
||||
extension RoomMemberProxyMock {
|
||||
@@ -36,7 +35,6 @@ extension RoomMemberProxyMock {
|
||||
isIgnored = configuration.isIgnored
|
||||
|
||||
powerLevel = configuration.powerLevel
|
||||
role = configuration.role
|
||||
}
|
||||
|
||||
// Mocks
|
||||
@@ -52,8 +50,15 @@ extension RoomMemberProxyMock {
|
||||
displayName: "Me",
|
||||
avatarURL: .mockMXCUserAvatar,
|
||||
membership: .join,
|
||||
powerLevel: .init(value: 100),
|
||||
role: .administrator))
|
||||
powerLevel: .init(value: 100)))
|
||||
}
|
||||
|
||||
static var mockMeCreator: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@me:matrix.org",
|
||||
displayName: "Me",
|
||||
avatarURL: .mockMXCUserAvatar,
|
||||
membership: .join,
|
||||
powerLevel: .infinite))
|
||||
}
|
||||
|
||||
static var mockAlice: RoomMemberProxyMock {
|
||||
@@ -116,32 +121,28 @@ extension RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@admin:matrix.org",
|
||||
displayName: "Arthur",
|
||||
membership: .join,
|
||||
powerLevel: .init(value: 100),
|
||||
role: .administrator))
|
||||
powerLevel: .init(value: 100)))
|
||||
}
|
||||
|
||||
static var mockCreator: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@creator:matrix.org",
|
||||
displayName: "God",
|
||||
membership: .join,
|
||||
powerLevel: .infinite,
|
||||
role: .creator))
|
||||
powerLevel: .infinite))
|
||||
}
|
||||
|
||||
static var mockOwner: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@owner:matrix.org",
|
||||
displayName: "Guinevere",
|
||||
membership: .join,
|
||||
powerLevel: .value(150),
|
||||
role: .administrator))
|
||||
powerLevel: .value(150)))
|
||||
}
|
||||
|
||||
static var mockModerator: RoomMemberProxyMock {
|
||||
RoomMemberProxyMock(with: .init(userID: "@mod:matrix.org",
|
||||
displayName: "Merlin",
|
||||
membership: .join,
|
||||
powerLevel: .init(value: 50),
|
||||
role: .moderator))
|
||||
powerLevel: .init(value: 50)))
|
||||
}
|
||||
|
||||
static var mockBanned: [RoomMemberProxyMock] {
|
||||
@@ -181,4 +182,33 @@ extension Array where Element == RoomMemberProxyMock {
|
||||
.mockAdmin,
|
||||
.mockModerator
|
||||
]
|
||||
|
||||
/// This also includes the creator and the owner role.
|
||||
static let allMembersAsAdminV2: [RoomMemberProxyMock] = [
|
||||
.mockMeAdmin,
|
||||
.mockAlice,
|
||||
.mockBob,
|
||||
.mockCharlie,
|
||||
.mockDan,
|
||||
.mockInvited,
|
||||
.mockIgnored,
|
||||
.mockAdmin,
|
||||
.mockModerator,
|
||||
.mockOwner,
|
||||
.mockCreator
|
||||
]
|
||||
|
||||
static let allMembersAsCreator: [RoomMemberProxyMock] = [
|
||||
.mockAdmin,
|
||||
.mockAlice,
|
||||
.mockBob,
|
||||
.mockCharlie,
|
||||
.mockDan,
|
||||
.mockInvited,
|
||||
.mockIgnored,
|
||||
.mockModerator,
|
||||
.mockCreator,
|
||||
.mockMeCreator,
|
||||
.mockOwner
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user