| <?php |
|
|
| namespace Kanboard\Model; |
|
|
| use Kanboard\Core\Base; |
| use Kanboard\Core\Security\Token; |
|
|
| |
| |
| |
| |
| |
| |
| class RememberMeSessionModel extends Base |
| { |
| |
| |
| |
| |
| |
| const TABLE = 'remember_me'; |
|
|
| |
| |
| |
| |
| |
| const EXPIRATION = 5184000; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| public function find($token, $sequence) |
| { |
| return $this->db |
| ->table(self::TABLE) |
| ->eq('token', $token) |
| ->eq('sequence', $sequence) |
| ->gt('expiration', time()) |
| ->findOne(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getAll($user_id) |
| { |
| return $this->db |
| ->table(self::TABLE) |
| ->eq('user_id', $user_id) |
| ->desc('date_creation') |
| ->columns('id', 'ip', 'user_agent', 'date_creation', 'expiration') |
| ->findAll(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public function create($user_id, $ip, $user_agent) |
| { |
| $token = hash('sha256', $user_id.$user_agent.$ip.Token::getToken()); |
| $sequence = Token::getToken(); |
| $expiration = time() + self::EXPIRATION; |
|
|
| $this->cleanup($user_id); |
|
|
| $this |
| ->db |
| ->table(self::TABLE) |
| ->insert(array( |
| 'user_id' => $user_id, |
| 'ip' => $ip, |
| 'user_agent' => substr($user_agent, 0, 255), |
| 'token' => $token, |
| 'sequence' => $sequence, |
| 'expiration' => $expiration, |
| 'date_creation' => time(), |
| )); |
|
|
| return array( |
| 'token' => $token, |
| 'sequence' => $sequence, |
| 'expiration' => $expiration, |
| ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function remove($session_id) |
| { |
| return $this->db |
| ->table(self::TABLE) |
| ->eq('id', $session_id) |
| ->remove(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function cleanup($user_id) |
| { |
| return $this->db |
| ->table(self::TABLE) |
| ->eq('user_id', $user_id) |
| ->lt('expiration', time()) |
| ->remove(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function updateSequence($token) |
| { |
| $sequence = Token::getToken(); |
|
|
| $this |
| ->db |
| ->table(self::TABLE) |
| ->eq('token', $token) |
| ->update(array('sequence' => $sequence)); |
|
|
| return $sequence; |
| } |
| } |
|
|