Check power level of the user before starting editing room info

This commit is contained in:
Denis Morozov
2017-03-20 22:15:39 +03:00
parent 4f53465fca
commit c2f91caada
@@ -407,6 +407,21 @@ NSString *const kRoomSettingsAdvancedE2eEnabledCellViewIdentifier = @"kRoomSetti
{
[self dismissFirstResponder];
// Check whether user allowed to change room info
NSDictionary *eventTypes = @{
@(RoomSettingsViewControllerFieldName): kMXEventTypeStringRoomName,
@(RoomSettingsViewControllerFieldTopic): kMXEventTypeStringRoomTopic,
@(RoomSettingsViewControllerFieldAvatar): kMXEventTypeStringRoomAvatar
};
NSString *eventTypeForSelectedField = eventTypes[@(selectedRoomSettingsField)];
MXRoomPowerLevels *powerLevels = [mxRoom.state powerLevels];
NSInteger oneSelfPowerLevel = [powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId];
if (oneSelfPowerLevel < [powerLevels minimumPowerLevelForSendingEventAsStateEvent:eventTypeForSelectedField])
return;
switch (selectedRoomSettingsField)
{
case RoomSettingsViewControllerFieldName:
@@ -2999,12 +3014,6 @@ NSString *const kRoomSettingsAdvancedE2eEnabledCellViewIdentifier = @"kRoomSetti
- (void)onRoomAvatarTap:(UITapGestureRecognizer *)recognizer
{
// Check whether user can change room avatar
MXRoomPowerLevels *powerLevels = [mxRoom.state powerLevels];
NSInteger oneSelfPowerLevel = [powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId];
if (oneSelfPowerLevel < [powerLevels minimumPowerLevelForSendingEventAsStateEvent:kMXEventTypeStringRoomAvatar])
return;
mediaPicker = [MediaPickerViewController mediaPickerViewController];
mediaPicker.mediaTypes = @[(NSString *)kUTTypeImage];
mediaPicker.delegate = self;