mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-17 23:18:27 +02:00
Merge branch 'develop' into feature/7564_migration_part_1_banner
# Conflicts: # Riot/Assets/de.lproj/Bwi.strings # Riot/Assets/en.lproj/Bwi.strings
This commit is contained in:
@@ -775,3 +775,7 @@
|
||||
"bwi_mobile_dialog_m_more_success" = "Benutzername kopiert";
|
||||
|
||||
"bwi_a11y_close_button" = "Ansicht schließen";
|
||||
|
||||
// MARK owner handling
|
||||
"room_member_power_level_owner_in" = "Inhaber von %@";
|
||||
"room_member_power_level_short_owner" = "Inhaber";
|
||||
|
||||
@@ -688,3 +688,6 @@
|
||||
|
||||
"bwi_a11y_close_button" = "Close window";
|
||||
|
||||
// MARK owner handling
|
||||
"room_member_power_level_owner_in" = "Owner in %@";
|
||||
"room_member_power_level_short_owner" = "Owner";
|
||||
|
||||
@@ -1491,6 +1491,14 @@ public class BWIL10n: NSObject {
|
||||
public static func roomMemberPowerLevelModeratorIn(_ p1: String) -> String {
|
||||
return BWIL10n.tr("Bwi", "room_member_power_level_moderator_in", p1)
|
||||
}
|
||||
/// Inhaber von %@
|
||||
public static func roomMemberPowerLevelOwnerIn(_ p1: String) -> String {
|
||||
return BWIL10n.tr("Bwi", "room_member_power_level_owner_in", p1)
|
||||
}
|
||||
/// Inhaber
|
||||
public static var roomMemberPowerLevelShortOwner: String {
|
||||
return BWIL10n.tr("Bwi", "room_member_power_level_short_owner")
|
||||
}
|
||||
/// Es gelten globale Benachrichtigungseinstellungen
|
||||
public static var roomNotifsSettingsAllDescription: String {
|
||||
return BWIL10n.tr("Bwi", "room_notifs_settings_all_description")
|
||||
|
||||
@@ -426,7 +426,7 @@ Please see LICENSE in the repository root for full details.
|
||||
|
||||
switch (roomPowerLevel) {
|
||||
case RoomPowerLevelOwner:
|
||||
self.roomMemberPowerLevelLabel.text = [VectorL10n roomMemberPowerLevelOwnerIn:self.mxRoom.summary.displayName];
|
||||
self.roomMemberPowerLevelLabel.text = [BWIL10n roomMemberPowerLevelOwnerIn:self.mxRoom.summary.displayName];
|
||||
self.roomMemberPowerLevelContainerView.hidden = NO;
|
||||
break;
|
||||
case RoomPowerLevelAdmin:
|
||||
|
||||
@@ -1100,7 +1100,7 @@ Please see LICENSE in the repository root for full details.
|
||||
|
||||
switch (roomPowerLevel) {
|
||||
case RoomPowerLevelOwner:
|
||||
powerLevelText = [VectorL10n roomMemberPowerLevelShortOwner];
|
||||
powerLevelText = [BWIL10n roomMemberPowerLevelShortOwner];
|
||||
break;
|
||||
case RoomPowerLevelAdmin:
|
||||
powerLevelText = [VectorL10n roomMemberPowerLevelShortAdmin];
|
||||
|
||||
@@ -30,11 +30,16 @@ final class LeaveRoomHelper {
|
||||
var canLeave = false
|
||||
var hasInvites = false
|
||||
|
||||
// admins can only leave if there is at least one other admin
|
||||
// bwi #7561 add differenciation for admin and owner
|
||||
let myPowerLevel = self.powerLevel(session.myUserId, room)
|
||||
|
||||
// admins can only leave if there is at least one other admin or owner
|
||||
// owners can only leave if there is another owner
|
||||
room.state { (state) in
|
||||
if let members = state?.members.joinedMembers {
|
||||
for user in members where user.userId != myUserId {
|
||||
if self.isAdmin(user.userId, room) {
|
||||
if self.powerLevel(user.userId, room) >= myPowerLevel
|
||||
{
|
||||
canLeave = true
|
||||
break
|
||||
}
|
||||
@@ -52,6 +57,16 @@ final class LeaveRoomHelper {
|
||||
return canLeave
|
||||
}
|
||||
|
||||
static private func powerLevel(_ userId: String, _ room: MXRoom) -> Int {
|
||||
var powerLevel: Int = 0
|
||||
|
||||
room.state { (state) in
|
||||
powerLevel = state?.powerLevelOfUser(withUserID: userId) ?? 0
|
||||
}
|
||||
|
||||
return powerLevel
|
||||
}
|
||||
|
||||
static private func isAdmin(_ userId: String, _ room: MXRoom) -> Bool {
|
||||
var admin = false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user