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

@ -75,4 +75,5 @@ Telescope.registerComponent("UsersAvatar", require('./users/UsersAvatar
Telescope.registerComponent("UsersName", require('./users/UsersName.jsx'));
Telescope.registerComponent("UsersMenu", require('./users/UsersMenu.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

@ -17,12 +17,13 @@ Telescope.routes.indexRoute = { name: "posts.list", component: Telescope.compone
Meteor.startup(() => {
Telescope.routes.add([
{name:"posts.daily", path:"daily", component:Telescope.components.PostsDaily},
{name:"posts.single", path:"posts/:_id(/:slug)", component:Telescope.components.PostsSingle},
{name:"users.single", path:"users/:slug", component:Telescope.components.UsersSingle},
{name:"users.account", path:"account", component:Telescope.components.UsersAccount},
{name:"users.edit", path:"users/:slug/edit", component:Telescope.components.UsersAccount},
{name:"app.notfound", path:"*", component:Telescope.components.Error404},
{name:"posts.daily", path:"daily", component:Telescope.components.PostsDaily},
{name:"posts.single", path:"posts/:_id(/:slug)", component:Telescope.components.PostsSingle},
{name:"users.single", path:"users/:slug", component:Telescope.components.UsersSingle},
{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:"app.notfound", path:"*", component:Telescope.components.Error404},
]);
const AppRoutes = {

View file

@ -29,4 +29,8 @@
}
}
}
}
.password-reset-form{
text-align: center;
}

View file

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

View file

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