Blame view
imports/modules/reset-password.js
1.31 KB
cac7cbc73
|
1 2 |
import $ from 'jquery'; import 'jquery-validation'; |
7df77f0fa
|
3 |
import { browserHistory } from 'react-router'; |
cac7cbc73
|
4 5 |
import { Accounts } from 'meteor/accounts-base'; import { Bert } from 'meteor/themeteorchef:bert'; |
7df77f0fa
|
6 |
|
f0c912bf1
|
7 8 |
let component; let token; |
7df77f0fa
|
9 |
|
cac7cbc73
|
10 |
const handleReset = () => { |
23c8a4c3c
|
11 |
const password = document.querySelector('[name="newPassword"]').value; |
f0c912bf1
|
12 13 14 |
Accounts.resetPassword(token, password, (error) => { if (error) { Bert.alert(error.reason, 'danger'); |
7df77f0fa
|
15 |
} else { |
f0c912bf1
|
16 17 |
browserHistory.push('/'); Bert.alert('Password reset!', 'success'); |
7df77f0fa
|
18 19 20 |
} }); }; |
cac7cbc73
|
21 |
const validate = () => { |
f0c912bf1
|
22 |
$(component.refs.resetPassword).validate({ |
7df77f0fa
|
23 24 25 |
rules: { newPassword: { required: true, |
f0c912bf1
|
26 |
minlength: 6, |
7df77f0fa
|
27 28 29 30 |
}, repeatNewPassword: { required: true, minlength: 6, |
f0c912bf1
|
31 32 |
equalTo: '[name="newPassword"]', }, |
7df77f0fa
|
33 34 35 |
}, messages: { newPassword: { |
f0c912bf1
|
36 37 |
required: 'Enter a new password, please.', minlength: 'Use at least six characters, please.', |
7df77f0fa
|
38 39 |
}, repeatNewPassword: { |
f0c912bf1
|
40 41 42 |
required: 'Repeat your new password, please.', equalTo: 'Hmm, your passwords don\'t match. Try again?', }, |
7df77f0fa
|
43 |
}, |
cac7cbc73
|
44 |
submitHandler() { handleReset(); }, |
7df77f0fa
|
45 46 |
}); }; |
23c8a4c3c
|
47 |
export default function handleResetPassword(options) { |
7df77f0fa
|
48 |
component = options.component; |
f0c912bf1
|
49 |
token = options.token; |
cac7cbc73
|
50 |
validate(); |
23c8a4c3c
|
51 |
} |