|
<?php |
|
|
|
namespace Kanboard\Model; |
|
|
|
use Kanboard\Core\Base; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PasswordResetModel extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
const TABLE = 'password_reset'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
const DURATION = 1800; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getAll($user_id) |
|
{ |
|
return $this->db->table(self::TABLE)->eq('user_id', $user_id)->desc('date_creation')->limit(100)->findAll(); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function create($username, $expiration = 0) |
|
{ |
|
$user_id = $this->db->table(UserModel::TABLE)->eq('username', $username)->neq('email', '')->notNull('email')->findOneColumn('id'); |
|
|
|
if (! $user_id) { |
|
return false; |
|
} |
|
|
|
$token = $this->token->getToken(); |
|
|
|
$result = $this->db->table(self::TABLE)->insert(array( |
|
'token' => $token, |
|
'user_id' => $user_id, |
|
'date_expiration' => $expiration ?: time() + self::DURATION, |
|
'date_creation' => time(), |
|
'ip' => $this->request->getIpAddress(), |
|
'user_agent' => $this->request->getUserAgent(), |
|
'is_active' => 1, |
|
)); |
|
|
|
return $result ? $token : false; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getUserIdByToken($token) |
|
{ |
|
return $this->db->table(self::TABLE)->eq('token', $token)->eq('is_active', 1)->gte('date_expiration', time())->findOneColumn('user_id'); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function disable($user_id) |
|
{ |
|
return $this->db->table(self::TABLE)->eq('user_id', $user_id)->update(array('is_active' => 0)); |
|
} |
|
} |
|
|