Merge pull request #1491 from malively/feature/add-reset-password-feature

Add Reset Password Feature
This commit is contained in:
Xavier Cazalot 2016-11-02 16:33:15 +01:00 committed by GitHub
commit 2fb457aab1
6 changed files with 51 additions and 7 deletions

View file

@ -76,3 +76,4 @@ Telescope.registerComponent("UsersName", require('./users/UsersName.j
Telescope.registerComponent("UsersMenu", require('./users/UsersMenu.jsx')); Telescope.registerComponent("UsersMenu", require('./users/UsersMenu.jsx'));
Telescope.registerComponent("UsersAccountMenu", require('./users/UsersAccountMenu.jsx')); Telescope.registerComponent("UsersAccountMenu", require('./users/UsersAccountMenu.jsx'));
Telescope.registerComponent("UsersAccountForm", require('./users/UsersAccountForm.jsx')); Telescope.registerComponent("UsersAccountForm", require('./users/UsersAccountForm.jsx'));
Telescope.registerComponent("UsersResetPassword", require('./users/UsersResetPassword.jsx'));

View file

@ -0,0 +1,36 @@
import React, { Component } from 'react';
import { Accounts, STATES } from 'meteor/std:accounts-ui';
import { Link } from 'react-router';
class UsersResetPassword extends Component {
componentDidMount() {
const token = this.props.params.token;
Accounts._loginButtonsSession.set('resetPasswordToken', token);
}
render() {
if (!this.context.currentUser) {
return (
<Accounts.ui.LoginForm
formState={ STATES.PASSWORD_CHANGE }
/>
);
}
return (
<div className='password-reset-form'>
<div>{T9n.get('info.passwordChanged')}!</div>
<Link to="/">
Return Home
</Link>
</div>
);
}
}
module.exports = UsersResetPassword;
export default UsersResetPassword;
UsersResetPassword.contextTypes = {
currentUser: React.PropTypes.object
};

View file

@ -21,6 +21,7 @@ Meteor.startup(() => {
{name:"posts.single", path:"posts/:_id(/:slug)", component:Telescope.components.PostsSingle}, {name:"posts.single", path:"posts/:_id(/:slug)", component:Telescope.components.PostsSingle},
{name:"users.single", path:"users/:slug", component:Telescope.components.UsersSingle}, {name:"users.single", path:"users/:slug", component:Telescope.components.UsersSingle},
{name:"users.account", path:"account", component:Telescope.components.UsersAccount}, {name:"users.account", path:"account", component:Telescope.components.UsersAccount},
{name:"resetPassword", path:"reset-password/:token", component:Telescope.components.UsersResetPassword},
{name:"users.edit", path:"users/:slug/edit", component:Telescope.components.UsersAccount}, {name:"users.edit", path:"users/:slug/edit", component:Telescope.components.UsersAccount},
{name:"app.notfound", path:"*", component:Telescope.components.Error404}, {name:"app.notfound", path:"*", component:Telescope.components.Error404},
]); ]);

View file

@ -30,3 +30,7 @@
} }
} }
} }
.password-reset-form{
text-align: center;
}

View file

@ -2,5 +2,6 @@ import Users from './modules.js';
import './server/create_user.js'; import './server/create_user.js';
import './server/publications.js'; import './server/publications.js';
import './server/urls.js';
export default Users; export default Users;

View file

@ -0,0 +1 @@
Accounts.urls.resetPassword = (token) => Meteor.absoluteUrl(`reset-password/${token}`);