Skip to content
Snippets Groups Projects
Commit 6bb6eafd authored by Mark Haines's avatar Mark Haines
Browse files

Hook up slash commands to enable and disable encryption for a room so that we...

Hook up slash commands to enable and disable encryption for a room so that we can experiment with encryption while we wait for the rest of the UI to exist
parent 726ee7b5
Branches
No related tags found
No related merge requests found
......@@ -18,6 +18,7 @@ limitations under the License.
var MatrixClientPeg = require("./MatrixClientPeg");
var dis = require("./dispatcher");
var encryption = require("./encryption");
var reject = function(msg) {
return {
......@@ -42,6 +43,25 @@ var commands = {
return reject("Usage: /nick <display_name>");
},
encrypt: function(room_id, args) {
if (args == "on") {
var client = MatrixClientPeg.get();
var members = client.getRoom(room_id).currentState.members;
var user_ids = Object.keys(members);
return success(
encryption.enableEncryption(client, room_id, user_ids)
);
}
if (args == "off") {
var client = MatrixClientPeg.get();
return success(
encryption.disableEncryption(client, room_id)
);
}
return reject("Usage: encrypt <on/off>");
},
// Change the room topic
topic: function(room_id, args) {
if (args) {
......
......@@ -20,6 +20,7 @@ var React = require("react");
var MatrixClientPeg = require("../../MatrixClientPeg");
var PresetValues = require('../atoms/create_room/Presets').Presets;
var q = require('q');
var encryption = require("../../encryption");
module.exports = {
propTypes: {
......@@ -103,22 +104,14 @@ module.exports = {
var response;
if (this.state.encrypt) {
var deferred = deferred.then(function(res) {
deferred = deferred.then(function(res) {
response = res;
return cli.downloadKeys([cli.credentials.userId]);
}).then(function(res) {
// TODO: Check the keys are valid.
return cli.downloadKeys(options.invite);
}).then(function(res) {
return cli.setRoomEncryption(response.room_id, {
algorithm: "m.olm.v1.curve25519-aes-sha2",
members: options.invite,
});
}).then(function(res) {
var d = q.defer();
d.resolve(response);
return d.promise;
});
return encryption.enableEncryption(
cli, response.roomId, options.invite
);
}).then(function() {
return q(response) }
);
}
this.setState({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment