diff --git a/src/Signup.js b/src/Signup.js index 1ac92f32183..eaf19060595 100644 --- a/src/Signup.js +++ b/src/Signup.js @@ -6,6 +6,7 @@ var MatrixClientPeg = require("./MatrixClientPeg"); var SignupStages = require("./SignupStages"); var dis = require("./dispatcher"); var q = require("q"); +var url = require("url"); const EMAIL_STAGE_TYPE = "m.login.email.identity"; @@ -413,6 +414,15 @@ class Login extends Signup { throw error; }); } + + redirectToCas() { + var client = this._createTemporaryClient(); + var parsedUrl = url.parse(window.location.href, true); + parsedUrl.query["homeserver"] = client.getHomeserverUrl(); + parsedUrl.query["identityServer"] = client.getIdentityServerUrl(); + var casUrl = client.getCasLoginUrl(url.format(parsedUrl)); + window.location.href = casUrl; + } } module.exports.Register = Register; diff --git a/src/components/structures/login/Login.js b/src/components/structures/login/Login.js index 80255048572..3139d020a61 100644 --- a/src/components/structures/login/Login.js +++ b/src/components/structures/login/Login.js @@ -90,6 +90,10 @@ module.exports = React.createClass({ }).done(); }, + onCasLogin: function() { + this._loginLogic.redirectToCas(); + }, + _onLoginAsGuestClick: function() { var self = this; self.setState({ @@ -225,7 +229,7 @@ module.exports = React.createClass({ ); case 'm.login.cas': return ( - + ); default: if (!step) { diff --git a/src/components/views/login/CasLogin.js b/src/components/views/login/CasLogin.js index 5c89fd37064..c818586d523 100644 --- a/src/components/views/login/CasLogin.js +++ b/src/components/views/login/CasLogin.js @@ -16,26 +16,19 @@ limitations under the License. 'use strict'; -var MatrixClientPeg = require("../../../MatrixClientPeg"); var React = require('react'); -var url = require("url"); module.exports = React.createClass({ displayName: 'CasLogin', - onCasClicked: function(ev) { - var cli = MatrixClientPeg.get(); - var parsedUrl = url.parse(window.location.href, true); - parsedUrl.query["homeserver"] = cli.getHomeserverUrl(); - parsedUrl.query["identityServer"] = cli.getIdentityServerUrl(); - var casUrl = MatrixClientPeg.get().getCasLoginUrl(url.format(parsedUrl)); - window.location.href = casUrl; + propTypes: { + onSubmit: React.PropTypes.func, // fn() }, render: function() { return (
- +
); }