Rename all models
This commit is contained in:
95
app/Model/PasswordResetModel.php
Normal file
95
app/Model/PasswordResetModel.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace Kanboard\Model;
|
||||
|
||||
use Kanboard\Core\Base;
|
||||
|
||||
/**
|
||||
* Password Reset Model
|
||||
*
|
||||
* @package Kanboard\Model
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class PasswordResetModel extends Base
|
||||
{
|
||||
/**
|
||||
* SQL table name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const TABLE = 'password_reset';
|
||||
|
||||
/**
|
||||
* Token duration (30 minutes)
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
const DURATION = 1800;
|
||||
|
||||
/**
|
||||
* Get all tokens
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @return array
|
||||
*/
|
||||
public function getAll($user_id)
|
||||
{
|
||||
return $this->db->table(self::TABLE)->eq('user_id', $user_id)->desc('date_creation')->limit(100)->findAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate a new reset token for a user
|
||||
*
|
||||
* @access public
|
||||
* @param string $username
|
||||
* @param integer $expiration
|
||||
* @return boolean|string
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user id from the token
|
||||
*
|
||||
* @access public
|
||||
* @param string $token
|
||||
* @return integer
|
||||
*/
|
||||
public function getUserIdByToken($token)
|
||||
{
|
||||
return $this->db->table(self::TABLE)->eq('token', $token)->eq('is_active', 1)->gte('date_expiration', time())->findOneColumn('user_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable all tokens for a user
|
||||
*
|
||||
* @access public
|
||||
* @param integer $user_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function disable($user_id)
|
||||
{
|
||||
return $this->db->table(self::TABLE)->eq('user_id', $user_id)->update(array('is_active' => 0));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user