diff --git a/src/components/views/settings/tabs/room/RolesRoomSettingsTab.js b/src/components/views/settings/tabs/room/RolesRoomSettingsTab.js
index 6b5fded674..f76bd6efa2 100644
--- a/src/components/views/settings/tabs/room/RolesRoomSettingsTab.js
+++ b/src/components/views/settings/tabs/room/RolesRoomSettingsTab.js
@@ -151,6 +151,22 @@ export default class RolesRoomSettingsTab extends React.Component {
client.sendStateEvent(this.props.roomId, "m.room.power_levels", plContent);
};
+ _onUserPowerLevelChanged = (value, powerLevelKey) => {
+ const client = MatrixClientPeg.get();
+ const room = client.getRoom(this.props.roomId);
+ const plEvent = room.currentState.getStateEvents('m.room.power_levels', '');
+ let plContent = plEvent ? (plEvent.getContent() || {}) : {};
+
+ // Clone the power levels just in case
+ plContent = Object.assign({}, plContent);
+
+ // powerLevelKey should be a user ID
+ if (!plContent['users']) plContent['users'] = {};
+ plContent['users'][powerLevelKey] = value;
+
+ client.sendStateEvent(this.props.roomId, "m.room.power_levels", plContent);
+ };
+
render() {
const PowerSelector = sdk.getComponent('elements.PowerSelector');
@@ -220,15 +236,29 @@ export default class RolesRoomSettingsTab extends React.Component {
const privilegedUsers = [];
const mutedUsers = [];
- Object.keys(userLevels).forEach(function(user) {
+ Object.keys(userLevels).forEach((user) => {
const canChange = userLevels[user] < currentUserLevel && canChangeLevels;
if (userLevels[user] > defaultUserLevel) { // privileged
privilegedUsers.push(
- ,
+ ,
);
} else if (userLevels[user] < defaultUserLevel) { // muted
mutedUsers.push(
- ,
+ ,
);
}
});