-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Reset.php
97 lines (91 loc) · 2.64 KB
/
Reset.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
/**
* This file is part of the alphaz Framework.
*
* @author Muhammad Umer Farooq (Malik) <mumerfarooqlablnet01@gmail.com>
*
* @link https://github.com/alphazframework/framework
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
* @since 1.0.0
*
* @license MIT
*/
namespace alphaz\Auth;
use alphaz\Site\Site;
use alphaz\Validation\Validation;
class Reset extends Handler
{
/**
* Store the error msgs.
*
* @since 1.0.0
*
* @var array
*/
protected $errors = [];
/**
* Add the reset password request.
*
* @param (string) $email email of user
*
* @since 1.0.0
*
* @return void
*/
public function reset($email)
{
$rules = [
'email' => ['required' => true, 'email' => true],
];
$input = [
'email' => $email,
];
$requireValidate = new Validation($input, $rules);
if ($requireValidate->fail()) {
Error::set($requireValidate->error()->get());
}
$user = new User();
if (!$user->isEmail($email)) {
Error::set(__config()->auth->errors->email_not_exist, 'username');
}
if (!$user->isLogin()) {
if ($this->fail() !== true) {
$id = $user->getByWhere('email', $email)[0]['id'];
$resetToken = (new Site())::salts(8);
$update = new Update();
$update->update(['resetToken' => $resetToken], $id);
$link = site_base_url().__config()->auth->reset_password_link.$resetToken;
$subject = __printl('auth:subject:reset');
$link = site_base_url().__config()->auth->reset_password_link.'/'.$token;
$html = __printl('auth:body:reset');
$html = str_replace(':email', $email, $html);
$html = str_replace(':link', $link, $html);
new EmailHandler($subject, $html, $email);
Success::set(__printl('auth:success:reset'));
}
} else {
Error::set(__printl('auth:error:already:login'), 'login');
}
}
/**
* check token is exists or not.
*
* @param (mixed) $token token of user
*
* @since 1.0.0
*
* @return void
*/
public function resetUpdate($token)
{
$user = new User();
if ($token === 'NULL' || $user->isResetToken($token) !== true) {
Error::set(__printl('auth:error:token'), 'token');
}
if ($this->fail() !== true) {
Success::set(true);
}
}
}