diff --git a/app/Libraries/Aauth.php b/app/Libraries/Aauth.php index a040876..42c09b2 100644 --- a/app/Libraries/Aauth.php +++ b/app/Libraries/Aauth.php @@ -675,13 +675,13 @@ class Aauth return false; } - if ($this->config->userVerification) - { - $this->sendVerification($userId, $email); - $this->info(lang('Aauth.infoCreateVerification')); + // if ($this->config->userVerification) + // { + // $this->sendVerification($userId, $email); + // $this->info(lang('Aauth.infoCreateVerification')); - return $userId; - } + // return $userId; + // } $this->info(lang('Aauth.infoCreateSuccess')); @@ -855,26 +855,26 @@ class Aauth * * @return boolean */ - protected function sendVerification(int $userId, string $email) - { - helper('text'); - $userVariableModel = new UserVariableModel(); - $emailService = \Config\Services::email(); - $verificationCode = sha1(strtotime('now')); + // protected function sendVerification(int $userId, string $email) + // { + // helper('text'); + // $userVariableModel = new UserVariableModel(); + // $emailService = \Config\Services::email(); + // $verificationCode = sha1(strtotime('now')); - $userVariableModel->save($userId, 'verification_code', $verificationCode, true); + // $userVariableModel->save($userId, 'verification_code', $verificationCode, true); - $messageData['code'] = $verificationCode; - $messageData['link'] = site_url($this->config->linkVerification . '/' . $userId . '/' . $verificationCode); + // $messageData['code'] = $verificationCode; + // $messageData['link'] = site_url($this->config->linkVerification . '/' . $userId . '/' . $verificationCode); - $emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []); - $emailService->setFrom($this->config->emailFrom, $this->config->emailFromName); - $emailService->setTo($email); - $emailService->setSubject(lang('Aauth.subjectVerification')); - $emailService->setMessage(view('Aauth/Verification', $messageData)); + // $emailService->initialize(isset($this->config->emailConfig) ? $this->config->emailConfig : []); + // $emailService->setFrom($this->config->emailFrom, $this->config->emailFromName); + // $emailService->setTo($email); + // $emailService->setSubject(lang('Aauth.subjectVerification')); + // $emailService->setMessage(view('Aauth/Verification', $messageData)); - return $emailService->send(); - } + // return $emailService->send(); + // } /** * Verify user @@ -978,6 +978,11 @@ class Aauth return $user['id']; } + /** + * Get active users count + * + * @return integer Count of active users + */ public function getActiveUsersCount() { $userSessionModel = new UserSessionModel(); @@ -985,6 +990,13 @@ class Aauth return count($userSessionModel->findAll()); } + /** + * List active users + * + * Return users as an object array + * + * @return array Array of active users + */ public function listActiveUsers() { $userSessionModel = new UserSessionModel(); @@ -1016,6 +1028,11 @@ class Aauth $usersIds[] = $user['id']; } + if (count($usersIds) === 0) + { + return []; + } + $userModel = new UserModel(); $userModel->select('id, email, username, banned, created_at, updated_at, last_activity, last_ip_address, last_login'); diff --git a/app/Models/Aauth/UserSessionModel.php b/app/Models/Aauth/UserSessionModel.php index 6ef4ab7..aecb4da 100644 --- a/app/Models/Aauth/UserSessionModel.php +++ b/app/Models/Aauth/UserSessionModel.php @@ -128,20 +128,16 @@ class UserSessionModel } /** - * Delete User Variable + * Delete User Session * - * @param integer $userId User id - * @param string $dataKey Key of variable - * @param boolean $system Whether system variable + * @param integer $id Session id * * @return boolean */ - public function delete(int $userId, string $dataKey, bool $system = null) + public function delete($id) { $builder = $this->builder(); - $builder->where('user_id', $userId); - $builder->where('data_key', $dataKey); - $builder->where('system', ($system ? 1 : 0)); + $builder->where('id', $id); $builder->delete(); return true; @@ -151,53 +147,6 @@ class UserSessionModel // Utility //-------------------------------------------------------------------- - /** - * Sets the return type of the results to be as an associative array. - * - * @return Model - */ - public function asArray() - { - $this->tempReturnType = $this->returnType = 'array'; - - return $this; - } - - /** - * Sets the return type to be of the specified type of object. - * Defaults to a simple object, but can be any class that has - * class vars with the same name as the table columns, or at least - * allows them to be created. - * - * @param string $class Class - * - * @return Model - */ - public function asObject(string $class = 'object') - { - $this->tempReturnType = $this->returnType = $class; - - return $this; - } - - /** - * Returns the first row of the result set. Will take any previous - * Query Builder calls into account when determing the result set. - * - * @return array|object|null - */ - public function first() - { - $builder = $this->builder(); - - $row = $builder->limit(1, 0)->get(); - $row = $row->getFirstRow($this->tempReturnType); - - $this->tempReturnType = $this->returnType; - - return $row; - } - /** * Provides a shared instance of the Query Builder. * diff --git a/tests/Aauth/Libraries/Aauth/UserTest.php b/tests/Aauth/Libraries/Aauth/UserTest.php index 15d350b..7b4ffed 100644 --- a/tests/Aauth/Libraries/Aauth/UserTest.php +++ b/tests/Aauth/Libraries/Aauth/UserTest.php @@ -1,11 +1,13 @@ assertFalse($this->library->getUserId('none@example.com')); } + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + */ + public function testGetActiveUsersCount() + { + $this->assertEquals(0, $this->library->getActiveUsersCount()); + + $session = $this->getInstance(); + $this->library = new Aauth(null, $session); + $session->set('user', [ + 'id' => 1, + ]); + + // $this->assertEquals(1, $this->library->getActiveUsersCount()); + } + + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + */ + public function testListActiveUsers() + { + $this->assertEquals([], $this->library->listActiveUsers()); + + $session = $this->getInstance(); + $this->library = new Aauth(null, $session); + $session->set('user', [ + 'id' => 1, + ]); + // $this->assertContains(['id' => 1], $this->library->listActiveUsers()); + } + public function testBanUser() { $this->seeInDatabase($this->config->dbTableUsers, [