mirror of https://github.com/vector-im/riot-web
Merge pull request #459 from VShell/fix-cas
Fix CAS support by using a temporary Matrix clientpull/21833/head
commit
86da0e0d63
|
@ -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;
|
||||
|
|
|
@ -92,6 +92,10 @@ module.exports = React.createClass({
|
|||
}).done();
|
||||
},
|
||||
|
||||
onCasLogin: function() {
|
||||
this._loginLogic.redirectToCas();
|
||||
},
|
||||
|
||||
_onLoginAsGuestClick: function() {
|
||||
var self = this;
|
||||
self.setState({
|
||||
|
@ -228,7 +232,7 @@ module.exports = React.createClass({
|
|||
);
|
||||
case 'm.login.cas':
|
||||
return (
|
||||
<CasLogin />
|
||||
<CasLogin onSubmit={this.onCasLogin} />
|
||||
);
|
||||
default:
|
||||
if (!step) {
|
||||
|
|
|
@ -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 (
|
||||
<div>
|
||||
<button onClick={this.onCasClicked}>Sign in with CAS</button>
|
||||
<button onClick={this.props.onSubmit}>Sign in with CAS</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue