diff --git a/webclient/components/matrix/matrix-service.js b/webclient/components/matrix/matrix-service.js
index a0674d06c9..165930fbc1 100644
--- a/webclient/components/matrix/matrix-service.js
+++ b/webclient/components/matrix/matrix-service.js
@@ -165,13 +165,25 @@ angular.module('matrixService', [])
// TODO: Use PUT with transaction IDs
return doRequest("POST", path, undefined, data);
},
+
+ // Change the membership of an another user
+ setMembership: function(room_id, user_id, membershipValue) {
+ // The REST path spec
+ var path = "/rooms/$room_id/state/m.room.member/$user_id";
+ path = path.replace("$room_id", encodeURIComponent(room_id));
+ path = path.replace("$user_id", user_id);
+
+ return doRequest("PUT", path, undefined, {
+ membership: membershipValue
+ });
+ },
// Bans a user from from a room
ban: function(room_id, user_id, reason) {
var path = "/rooms/$room_id/ban/";
path = path.replace("$room_id", encodeURIComponent(room_id));
- return doRequest("PUT", path, undefined, {
+ return doRequest("POST", path, undefined, {
user_id: user_id,
reason: reason
});
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index a26d1c72db..0ffbe8761f 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -289,7 +289,7 @@ angular.module('RoomController', ['ngSanitize', 'mFileInput'])
var user_id = args[1];
// Set his state in the room as leave
- promise = matrixService.membershipChange($scope.room_id, user_id, "leave");
+ promise = matrixService.setMembership($scope.room_id, user_id, "leave");
}
break;
@@ -314,7 +314,7 @@ angular.module('RoomController', ['ngSanitize', 'mFileInput'])
var user_id = args[1];
// Reset the user membership to leave to unban him
- promise = matrixService.membershipChange($scope.room_id, user_id, "leave");
+ promise = matrixService.setMembership($scope.room_id, user_id, "leave");
}
break;
|