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(), )); } /** * Cleanup login history * * @access public * @param integer $user_id */ 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(); } } /** * Get the last connections for a given user * * @access public * @param integer $user_id User id * @return array */ 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(); } }