Check power level before starting live sharing location (#7832)

Update RiotSwiftUI/Modules/LocationSharing/StartLocationSharing/Coordinator/LocationSharingCoordinator.swift

Use local var `roomPowerLevels`

Co-authored-by: Nicolas Buquet <nbuquet@buquet-net.com>
This commit is contained in:
Doug 2024-08-14 18:20:02 +01:00 committed by GitHub
parent ac3fcbd830
commit c4387b9d84
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View file

@ -166,17 +166,16 @@ final class LocationSharingCoordinator: Coordinator, Presentable {
// Check if user can send beacon info state event
private func canShareLiveLocation() -> Bool {
guard let myUserId = parameters.roomDataSource.mxSession.myUserId else {
guard let myUserId = parameters.roomDataSource.mxSession.myUserId,
let roomPowerLevels = parameters.roomDataSource.roomState.powerLevels,
let userPowerLevel = RoomPowerLevel(rawValue: roomPowerLevels.powerLevelOfUser(withUserID: myUserId)) else {
return false
}
let userPowerLevelRawValue = parameters.roomDataSource.roomState.powerLevels.powerLevelOfUser(withUserID: myUserId)
guard let userPowerLevel = RoomPowerLevel(rawValue: userPowerLevelRawValue) else {
return false
}
return userPowerLevel.rawValue >= RoomPowerLevel.moderator.rawValue
// CHeck user power level in room against power level needed to post geolocation state event.
let liveSharingPowerLevel = roomPowerLevels.minimumPowerLevelForSendingStateEvent(.beaconInfo)
return userPowerLevel.rawValue >= liveSharingPowerLevel
}
private func showLabFlagPromotionIfNeeded(completion: @escaping ((Bool) -> Void)) {

View file

@ -0,0 +1 @@
Check power level before starting live sharing location