You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-08 21:42:24 +03:00
Implement auto-join rooms on registration
Also: This fixes registration with a team: only the email localpart was being used to register.
When a registration is successful, the user will be joined to rooms specified in the config.json teamsConfig:
"teamsConfig" : {
"supportEmail": "support@riot.im",
"teams": [
{
"name" : "matrix",
"emailSuffix" : "matrix.org",
"rooms" : [
{
"id" : "#irc_matrix:matrix.org",
"autoJoin" : true
}
]
}
]
}
autoJoin can of course be set to false if the room should only be displayed on the (forthcoming) welcome page for each team, and not auto-joined.
This commit is contained in:
@@ -179,6 +179,23 @@ module.exports = React.createClass({
|
|||||||
accessToken: response.access_token
|
accessToken: response.access_token
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Auto-join rooms
|
||||||
|
if (self.props.teamsConfig) {
|
||||||
|
for (let i = 0; i < self.props.teamsConfig.teams.length; i++) {
|
||||||
|
let team = self.props.teamsConfig.teams[i];
|
||||||
|
if (self.state.formVals.email.endsWith(team.emailSuffix)) {
|
||||||
|
console.log("User successfully registered with team " + team.name);
|
||||||
|
team.rooms.forEach((room) => {
|
||||||
|
if (room.autoJoin) {
|
||||||
|
console.log("Auto-joining " + room.id);
|
||||||
|
MatrixClientPeg.get().joinRoom(room.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (self.props.brand) {
|
if (self.props.brand) {
|
||||||
MatrixClientPeg.get().getPushers().done((resp)=>{
|
MatrixClientPeg.get().getPushers().done((resp)=>{
|
||||||
var pushers = resp.pushers;
|
var pushers = resp.pushers;
|
||||||
|
|||||||
@@ -116,10 +116,14 @@ module.exports = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_doSubmit: function() {
|
_doSubmit: function() {
|
||||||
|
let email = this.refs.email.value.trim();
|
||||||
|
if (this.state.selectedTeam) {
|
||||||
|
email += "@" + this.state.selectedTeam.emailSuffix;
|
||||||
|
}
|
||||||
var promise = this.props.onRegisterClick({
|
var promise = this.props.onRegisterClick({
|
||||||
username: this.refs.username.value.trim() || this.props.guestUsername,
|
username: this.refs.username.value.trim() || this.props.guestUsername,
|
||||||
password: this.refs.password.value.trim(),
|
password: this.refs.password.value.trim(),
|
||||||
email: this.refs.email.value.trim()
|
email: email,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (promise) {
|
if (promise) {
|
||||||
|
|||||||
Reference in New Issue
Block a user