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
No related branches found
No related tags found
No related merge requests found
...@@ -18,6 +18,7 @@ limitations under the License. ...@@ -18,6 +18,7 @@ limitations under the License.
var MatrixClientPeg = require("./MatrixClientPeg"); var MatrixClientPeg = require("./MatrixClientPeg");
var dis = require("./dispatcher"); var dis = require("./dispatcher");
var encryption = require("./encryption");
var reject = function(msg) { var reject = function(msg) {
return { return {
...@@ -42,6 +43,25 @@ var commands = { ...@@ -42,6 +43,25 @@ var commands = {
return reject("Usage: /nick <display_name>"); 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 // Change the room topic
topic: function(room_id, args) { topic: function(room_id, args) {
if (args) { if (args) {
......
...@@ -20,6 +20,7 @@ var React = require("react"); ...@@ -20,6 +20,7 @@ var React = require("react");
var MatrixClientPeg = require("../../MatrixClientPeg"); var MatrixClientPeg = require("../../MatrixClientPeg");
var PresetValues = require('../atoms/create_room/Presets').Presets; var PresetValues = require('../atoms/create_room/Presets').Presets;
var q = require('q'); var q = require('q');
var encryption = require("../../encryption");
module.exports = { module.exports = {
propTypes: { propTypes: {
...@@ -103,22 +104,14 @@ module.exports = { ...@@ -103,22 +104,14 @@ module.exports = {
var response; var response;
if (this.state.encrypt) { if (this.state.encrypt) {
var deferred = deferred.then(function(res) { deferred = deferred.then(function(res) {
response = res; response = res;
return cli.downloadKeys([cli.credentials.userId]); return encryption.enableEncryption(
}).then(function(res) { cli, response.roomId, options.invite
// TODO: Check the keys are valid. );
return cli.downloadKeys(options.invite); }).then(function() {
}).then(function(res) { return q(response) }
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;
});
} }
this.setState({ this.setState({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment