SP1.2: Invite to Space in room landing element-ios#5225

- Check user permissions to invite people
This commit is contained in:
Gil Eluard
2022-01-26 10:17:42 +01:00
parent d23f24b9ce
commit fb89b0092e
7 changed files with 129 additions and 40 deletions
@@ -138,10 +138,27 @@ extension SpaceMembersCoordinator: SpaceMemberListCoordinatorDelegate {
return
}
let coordinator = ContactsPickerCoordinator(session: parameters.session, room: spaceRoom, currentSearchText: nil, actualParticipants: nil, invitedParticipants: nil, userParticipant: nil, navigationRouter: navigationRouter)
coordinator.delegate = self
coordinator.start()
childCoordinators.append(coordinator)
spaceRoom.state { [weak self] roomState in
guard let self = self else { return }
guard let powerLevels = roomState?.powerLevels, let userId = self.parameters.session.myUserId else {
MXLog.error("[RoomParticipantsInviteCoordinatorBridgePresenter] present: powerLevels room found")
return
}
let userPowerLevel = powerLevels.powerLevelOfUser(withUserID: userId)
guard userPowerLevel >= powerLevels.invite else {
let alert = UIAlertController(title: VectorL10n.spacesInvitePeople, message: VectorL10n.spaceInviteNotEnoughPermission, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: VectorL10n.ok, style: .default, handler: nil))
self.navigationRouter.present(alert, animated: true)
return
}
let coordinator = ContactsPickerCoordinator(session: self.parameters.session, room: spaceRoom, currentSearchText: nil, actualParticipants: nil, invitedParticipants: nil, userParticipant: nil, navigationRouter: self.navigationRouter)
coordinator.delegate = self
coordinator.start()
self.childCoordinators.append(coordinator)
}
}
}