| <?php |
|
|
| namespace Kanboard\Model; |
|
|
| use Kanboard\Core\Base; |
|
|
| |
| |
| |
| |
| |
| |
| class LastLoginModel extends Base |
| { |
| |
| |
| |
| |
| |
| const TABLE = 'last_logins'; |
|
|
| |
| |
| |
| |
| |
| const NB_LOGINS = 10; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public function create($auth_type, $user_id, $ip, $user_agent) |
| { |
| $this->cleanup($user_id); |
|
|
| return $this->db |
| ->table(self::TABLE) |
| ->insert(array( |
| 'auth_type' => $auth_type, |
| 'user_id' => $user_id, |
| 'ip' => $ip, |
| 'user_agent' => substr($user_agent, 0, 255), |
| 'date_creation' => time(), |
| )); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| public function cleanup($user_id) |
| { |
| $connections = $this->db |
| ->table(self::TABLE) |
| ->eq('user_id', $user_id) |
| ->desc('id') |
| ->findAllByColumn('id'); |
|
|
| if (count($connections) >= self::NB_LOGINS) { |
| $this->db->table(self::TABLE) |
| ->eq('user_id', $user_id) |
| ->notIn('id', array_slice($connections, 0, self::NB_LOGINS - 1)) |
| ->remove(); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function getAll($user_id) |
| { |
| return $this->db |
| ->table(self::TABLE) |
| ->eq('user_id', $user_id) |
| ->desc('id') |
| ->columns('id', 'auth_type', 'ip', 'user_agent', 'date_creation') |
| ->findAll(); |
| } |
| } |
|
|