chore: buildfixes and powerlevel fixes (MESSENGER-7610)

This commit is contained in:
Frank Rotermund
2025-08-27 12:15:03 +02:00
parent bf76058997
commit 9f2927ea77
11 changed files with 65 additions and 81 deletions

View File

@@ -43,7 +43,7 @@ when String # specific MatrixSDK released version
$matrixSDKVersionSpec = $matrixSDKVersion
end
$matrixSDKVersionSpec = { :git => 'https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk', :tag => 'v2.25.0' }
$matrixSDKVersionSpec = { :git => 'https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk', :tag => 'v2.25.1-RC01' }
########################################

View File

@@ -14,30 +14,39 @@ PODS:
- AFNetworking/Serialization (4.0.1)
- AFNetworking/UIKit (4.0.1):
- AFNetworking/NSURLSession
- BlueCryptor (1.0.32)
- BlueECC (1.2.5)
- BlueRSA (1.0.200)
- Down (0.11.0)
- DSWaveformImage (6.1.1)
- FLEX (5.22.10)
- DTCoreText (1.6.26):
- DTCoreText/Core (= 1.6.26)
- DTFoundation/Core (~> 1.7.5)
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTCoreText/Core (1.6.26):
- DTFoundation/Core (~> 1.7.5)
- DTFoundation/DTAnimatedGIF (~> 1.7.5)
- DTFoundation/DTHTMLParser (~> 1.7.5)
- DTFoundation/UIKit (~> 1.7.5)
- DTFoundation/Core (1.7.19)
- DTFoundation/DTAnimatedGIF (1.7.19)
- DTFoundation/DTHTMLParser (1.7.19):
- DTFoundation/Core
- DTFoundation/UIKit (1.7.19):
- DTFoundation/Core
- DTTJailbreakDetection (0.4.0)
- FlowCommoniOS (1.12.2)
- GBDeviceInfo (7.1.0):
- GBDeviceInfo/Core (= 7.1.0)
- GBDeviceInfo/Core (7.1.0)
- GZIP (1.3.2)
- Introspect (0.12.0)
- JitsiMeetSDKLite (8.1.2-lite):
- JitsiWebRTC (~> 111.0)
- JitsiWebRTC (111.0.2)
- KeychainAccess (4.2.2)
- KituraContracts (1.2.1):
- LoggerAPI (~> 1.7)
- KTCenterFlowLayout (1.3.1)
- libbase58 (0.1.4)
- libPhoneNumber-iOS (0.9.15)
- LoggerAPI (1.9.200):
- Logging (~> 1.1)
- Logging (1.4.0)
- MatomoTracker (7.5.2):
- MatomoTracker/Core (= 7.5.2)
- MatomoTracker/Core (7.5.2)
- MatrixSDK (0.27.17):
- MatrixSDK/Core (= 0.27.17)
- MatrixSDK/Core (0.27.17):
@@ -47,9 +56,6 @@ PODS:
- MatrixSDKCrypto (= 0.11.1)
- Realm (= 10.27.0)
- SwiftyBeaver (= 1.9.5)
- MatrixSDK/JingleCallStack (0.27.17):
- JitsiMeetSDKLite (= 8.1.2-lite)
- MatrixSDK/Core
- MatrixSDKCrypto (0.11.1)
- ReadMoreTextView (3.0.1)
- Realm (10.27.0):
@@ -60,19 +66,9 @@ PODS:
- Reusable/View (= 4.1.2)
- Reusable/Storyboard (4.1.2)
- Reusable/View (4.1.2)
- Sentry (8.46.0):
- Sentry/Core (= 8.46.0)
- Sentry/Core (8.46.0)
- SideMenu (6.5.0)
- SwiftBase32 (0.9.0)
- SwiftFormat/CLI (0.54.5)
- SwiftGen (6.6.3)
- SwiftJWT (3.6.200):
- BlueCryptor (~> 1.0)
- BlueECC (~> 1.1)
- BlueRSA (~> 1.0)
- KituraContracts (~> 1.2)
- LoggerAPI (~> 1.7)
- SwiftLint (0.57.0)
- SwiftyBeaver (1.9.5)
- UICollectionViewLeftAlignedLayout (1.0.2)
@@ -86,23 +82,21 @@ PODS:
DEPENDENCIES:
- Down (~> 0.11.0)
- DSWaveformImage (~> 6.1.1)
- FLEX (~> 5.22.10)
- DTCoreText (= 1.6.26)
- DTTJailbreakDetection (~> 0.4.0)
- FlowCommoniOS (~> 1.12.0)
- GBDeviceInfo (~> 7.1.0)
- Introspect (~> 0.1)
- KeychainAccess (~> 4.2.2)
- KTCenterFlowLayout (~> 1.3.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (from `matrix-ios-sdk/MatrixSDK.podspec`)
- MatrixSDK/JingleCallStack (from `matrix-ios-sdk/MatrixSDK.podspec`)
- MatomoTracker (~> 7.5.2)
- MatrixSDK (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v2.25.1-RC01`)
- ReadMoreTextView (~> 3.0.1)
- Reusable (~> 4.1)
- Sentry (~> 8.46.0)
- SideMenu (~> 6.5)
- SwiftBase32 (~> 0.9.0)
- SwiftFormat/CLI
- SwiftGen
- SwiftJWT (~> 3.6.200)
- SwiftLint
- UICollectionViewLeftAlignedLayout (~> 1.0.2)
- UICollectionViewRightAlignedLayout (~> 0.0.3)
@@ -112,37 +106,28 @@ DEPENDENCIES:
SPEC REPOS:
https://github.com/CocoaPods/Specs.git:
- MatrixSDKCrypto
- Sentry
trunk:
- AFNetworking
- BlueCryptor
- BlueECC
- BlueRSA
- Down
- DSWaveformImage
- FLEX
- DTCoreText
- DTFoundation
- DTTJailbreakDetection
- FlowCommoniOS
- GBDeviceInfo
- GZIP
- Introspect
- JitsiMeetSDKLite
- JitsiWebRTC
- KeychainAccess
- KituraContracts
- KTCenterFlowLayout
- libbase58
- libPhoneNumber-iOS
- LoggerAPI
- Logging
- MatomoTracker
- MatrixSDKCrypto
- ReadMoreTextView
- Realm
- Reusable
- SideMenu
- SwiftBase32
- SwiftFormat
- SwiftGen
- SwiftJWT
- SwiftLint
- SwiftyBeaver
- UICollectionViewLeftAlignedLayout
@@ -153,40 +138,38 @@ SPEC REPOS:
EXTERNAL SOURCES:
MatrixSDK:
:path: matrix-ios-sdk/MatrixSDK.podspec
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
:tag: v2.25.1-RC01
CHECKOUT OPTIONS:
MatrixSDK:
:git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk
:tag: v2.25.1-RC01
SPEC CHECKSUMS:
AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
BlueCryptor: b0aee3d9b8f367b49b30de11cda90e1735571c24
BlueECC: 0d18e93347d3ec6d41416de21c1ffa4d4cd3c2cc
BlueRSA: dfeef51db96bcc4edec654956c1581adbda4e6a3
Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612
DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce
FLEX: f21ee4f498eed3f8a1eded66b21939fd3b7a22ce
DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce
DTFoundation: 76b624967cf5bcaae6bb057d622c536c36ef36d0
DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71
FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2
GBDeviceInfo: 5d62fa85bdcce3ed288d83c28789adf1173e4376
GZIP: 3c0abf794bfce8c7cb34ea05a1837752416c8868
Introspect: b66b675de8a85d9ef832f3a710d8e3c7db186884
JitsiMeetSDKLite: 895213158cf62342069a10634a41d2f1c00057f7
JitsiWebRTC: 80f62908fcf2a1160e0d14b584323fb6e6be630b
KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51
KituraContracts: e845e60dc8627ad0a76fa55ef20a45451d8f830b
KTCenterFlowLayout: 6e02b50ab2bd865025ae82fe266ed13b6d9eaf97
libbase58: 7c040313537b8c44b6e2d15586af8e21f7354efd
libbase58: 8abc2a53ac38cd37720c0acbc53ef3660e9016c2
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MatomoTracker: 1d98ddc58322fd9d65e1a6886b8e41363047bd13
MatrixSDK: 45f9f97e7424e5d8731bf6b207c728a71caa8eb1
MatrixSDKCrypto: e44608012cae9befc52f13cd8e56c6f51ac83702
ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d
Realm: 9ca328bd7e700cc19703799785e37f77d1a130f2
Reusable: 6bae6a5e8aa793c9c441db0213c863a64bce9136
Sentry: da60d980b197a46db0b35ea12cb8f39af48d8854
SideMenu: f583187d21c5b1dd04c72002be544b555a2627a2
SwiftBase32: 9399c25a80666dc66b51e10076bf591e3bbb8f17
SwiftFormat: 543a7b1ab4a6ce2d88bd5616a17903446ca3dc5c
SwiftGen: 4993cbf71cbc4886f775e26f8d5c3a1188ec9f99
SwiftJWT: 88c412708f58c169d431d344c87bc79a87c830ae
SwiftLint: eb47480d47c982481592c195c221d11013a679cc
SwiftyBeaver: 84069991dd5dca07d7069100985badaca7f0ce82
UICollectionViewLeftAlignedLayout: 830bf6fa5bab9f9b464f62e3384f9d2e00b3c0f6
@@ -195,6 +178,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5
PODFILE CHECKSUM: 60f4fe3695f2304b9bba734acf38d59c79678ac1
PODFILE CHECKSUM: 39e8f56c2134aa41ec33ec47c714f5ad0701735e
COCOAPODS: 1.16.2

View File

@@ -1,5 +1,5 @@
{
"originHash" : "990424a81b986029a9135d7160faffa20b363bb30f1edd5be4a85e792551c893",
"originHash" : "a076b2f8f5d584ca7d9da77481d329ef792da391832f42c6e04caa42c69f5631",
"pins" : [
{
"identity" : "bluecryptor",
@@ -24,8 +24,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/Kitura/BlueRSA.git",
"state" : {
"revision" : "440f78db26d8bb073f29590f1c7bd31004da09ae",
"version" : "1.0.201"
"revision" : "f40325520344a966523b214394aa350132a6af68",
"version" : "1.0.203"
}
},
{
@@ -103,10 +103,10 @@
{
"identity" : "matrix-rich-text-editor-swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/matrix-org/matrix-rich-text-editor-swift",
"location" : "https://github.com/element-hq/matrix-rich-text-editor-swift",
"state" : {
"revision" : "21c0dd6e9c0b38d19d97af8e3e99fe01df56825d",
"version" : "2.37.3"
"revision" : "b6583a47b5d14d2dc8405a0303ebd4041b877707",
"version" : "2.37.12"
}
},
{
@@ -141,8 +141,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/Kitura/Swift-JWT",
"state" : {
"revision" : "08e02ff214c41df49bdd189ff837d68ba11c437b",
"version" : "4.0.0"
"revision" : "2cf7ef3eeb0df84318c75662c257651285f8289f",
"version" : "4.0.2"
}
},
{

View File

@@ -142,7 +142,8 @@ class RoomContextActionService: NSObject, RoomContextActionServiceProtocol {
self.delegate?.roomContextActionService(self, presentAlert: self.getLeaveAlertController())
} else {
self.delegate?.roomContextActionService(self, presentAlert: self.leaveAlertController)
}
Task {
if try await room.isLastOwner() {
await MainActor.run {

View File

@@ -1427,13 +1427,13 @@ Please see LICENSE in the repository root for full details.
- (bool)isLastAdmin:(NSString*) userId {
__block NSInteger numOtherAdmins = 0;
if (!userId || [self.mxRoomLiveTimeline.state.powerLevels powerLevelOfUserWithUserID:userId] < RoomPowerLevelAdmin)
if (!userId || [self.mxRoomLiveTimeline.state powerLevelOfUserWithUserID:userId] < RoomPowerLevelAdmin)
return FALSE;
// Update member power level
[self.mxRoom members:^(MXRoomMembers *roomMembers) {
for (MXRoomMember* member in roomMembers.members) {
NSInteger powerLevel = [self.mxRoomLiveTimeline.state.powerLevels powerLevelOfUserWithUserID:member.userId];
NSInteger powerLevel = [self.mxRoomLiveTimeline.state powerLevelOfUserWithUserID:member.userId];
if (member && ![member.userId isEqualToString:userId] && member.membership == MXMembershipJoin && powerLevel >= RoomPowerLevelAdmin) {
numOtherAdmins++;
}

View File

@@ -651,7 +651,7 @@ Please see LICENSE in the repository root for full details.
// Update member power level
MXRoomPowerLevels *powerLevels = [roomState powerLevels];
NSInteger powerLevel = [powerLevels powerLevelOfUserWithUserID:mxMember.userId];
NSInteger powerLevel = [roomState powerLevelOfUserWithUserID:mxMember.userId];
RoomPowerLevel roomPowerLevel = [RoomPowerLevelHelper roomPowerLevelFrom:powerLevel];
@@ -659,7 +659,7 @@ Please see LICENSE in the repository root for full details.
{
[invitedParticipants addObject:contact];
}
else if (roomPowerLevel == RoomPowerLevelAdmin) {
else if (roomPowerLevel == RoomPowerLevelAdmin || roomPowerLevel == RoomPowerLevelOwner) {
[adminParticipants addObject:contact];
}
else if (roomPowerLevel == RoomPowerLevelModerator) {
@@ -1092,7 +1092,7 @@ Please see LICENSE in the repository root for full details.
// Update member power level
MXRoomPowerLevels *powerLevels = [roomState powerLevels];
NSInteger powerLevel = [powerLevels powerLevelOfUserWithUserID:contact.mxMember.userId];
NSInteger powerLevel = [roomState powerLevelOfUserWithUserID:contact.mxMember.userId];
RoomPowerLevel roomPowerLevel = [RoomPowerLevelHelper roomPowerLevelFrom:powerLevel];

View File

@@ -8461,7 +8461,7 @@ static CGSize kThreadListBarButtonItemImageSize;
{
// Do not show sheet if users power level is lower than admin
MXRoomPowerLevels *powerLevels = self.roomDataSource.roomState.powerLevels;
if ([powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId] >= RoomPowerLevelAdmin)
if ([self.roomDataSource.roomState powerLevelOfUserWithUserID:self.mainSession.myUser.userId] >= RoomPowerLevelAdmin)
{
// Show sheet if no serverACL have been configured
[self.roomDataSource.room getCurrentRoomServerACLSettingsWithCompletion:^(NSString *serverACL)

View File

@@ -3013,7 +3013,7 @@ BOOL reloadToggleCell = false;
// check users power level, only admins or moderators are allowed to change the federation
MXRoomPowerLevels *powerLevels = [mxRoomState powerLevels];
BOOL isToggleDisabled = ([powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId] != RoomPowerLevelAdmin);
BOOL isToggleDisabled = ([mxRoomState powerLevelOfUserWithUserID:self.mainSession.myUser.userId] < RoomPowerLevelAdmin);
// reuse view on layout refresh
if (reloadToggleCell || ![cell hasBeenInitialized]) {
@@ -3960,7 +3960,7 @@ BOOL reloadToggleCell = false;
MXRoomPowerLevels *powerLevels = [mxRoomState powerLevels];
if ([powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId] != RoomPowerLevelAdmin) {
if ([mxRoomState powerLevelOfUserWithUserID:self.mainSession.myUser.userId] < RoomPowerLevelAdmin) {
directoryVisibilitySwitch.enabled = NO;
}

View File

@@ -57,7 +57,7 @@ final class LeaveRoomHelper {
room.state { (state) in
let powerLevels = state?.powerLevels
let userPowerLevel = powerLevels?.powerLevelOfUser(withUserID: userId)
let userPowerLevel = state?.powerLevelOfUser(withUserID: userId)
let roomPowerLevel = RoomPowerLevelHelper.roomPowerLevel(from: userPowerLevel ?? RoomPowerLevel.user.rawValue)
if roomPowerLevel == RoomPowerLevel.admin {

View File

@@ -113,7 +113,7 @@ import MatrixSDK
let powerLevels = state?.powerLevels
for member in roomMembers?.joinedMembers ?? [MXRoomMember]() {
if let powerLevel = powerLevels?.powerLevelOfUser(withUserID: member.userId) {
if let powerLevel = state?.powerLevelOfUser(withUserID: member.userId) {
if powerLevel >= 100 {
noOfAdmins += 1
}

View File

@@ -79,7 +79,7 @@ final class RoomRollsAndRightsService: RoomRollsAndRightsServiceType {
self.room.state { (state) in
let userID = self.room.mxSession.myUser.userId
let powerLevels = state?.powerLevels
let userPowerLevel = powerLevels?.powerLevelOfUser(withUserID: userID)
let userPowerLevel = state?.powerLevelOfUser(withUserID: userID)
let roomPowerLevel = RoomPowerLevelHelper.roomPowerLevel(from: userPowerLevel ?? RoomPowerLevel.user.rawValue)
if roomPowerLevel == RoomPowerLevel.admin {