/** * Зберегти гостя як юзера в БД */ public function saveAsUser() { $user = new User(); $user->login = $this->login; $user->password = $this->password; $user->firstname = $this->firstname; $user->secondname = $this->secondname; $user->patronymic = $this->patronymic; $user->email = $this->email; $user->gender = $this->gender; $user->birth_date = $this->birth_date; $user->reg_date = $this->reg_date; $user->is_active = false; $user->last_activity = $this->last_activity; if (!$user->login) { $user->login = CMS\User::generateRandomPassword(); } if (!$user->password) { $user->password = CMS\User::generateRandomPassword(); } $user->password = CMS\User::criptPassword($user->password); $user->save(); $this->setting('id', $user->id); return $user; }
public function testDelete() { $user = User::create(); $user->login = '******'; $user->is_active = true; $user->save(); $this->models[] = $user; $response = new \Bazalt\Rest\Response(403, 'Permission denied'); $this->assertResponse('DELETE /auth/users/' . $user->id, ['contentType' => 'application/json'], $response); $user = User::getById($user->id); $this->assertEquals(0, $user->is_deleted); $this->addPermission('auth.can_delete_user', $user); // login \Bazalt\Auth::setUser($user); $response = new \Bazalt\Rest\Response(400, ['id' => 'Can\'t delete yourself']); $this->assertResponse('DELETE /auth/users/' . $user->id, ['contentType' => 'application/json'], $response); $user = User::getById($user->id); $this->assertEquals(0, $user->is_deleted); $user2 = User::create(); $user2->login = '******'; $user2->is_active = true; $user2->save(); $this->models[] = $user2; $this->addPermission('auth.can_delete_user', $user2); // login \Bazalt\Auth::setUser($user2); $response = new \Bazalt\Rest\Response(200, true); $this->assertResponse('DELETE /auth/users/' . $user->id, ['contentType' => 'application/json'], $response); $user = User::getById($user->id); $this->assertEquals(1, $user->is_deleted); }
protected function createAdminUser() { $user = \Bazalt\Auth\Model\User::create(); $user->login = rand(); $user->is_active = 1; $user->is_god = 1; $user->save(); $this->models[] = $user; return $user; }
public function testGetUserByLogin() { $this->model->login = '******'; $this->model->save(); $user = User::getUserByLogin('test'); $this->assertEquals($this->model->id, $user->id); $user = User::getUserByLogin('test', true); $this->assertNull($user); $this->model->is_active = 1; $this->model->save(); $user = User::getUserByLogin('test', true); $this->assertEquals($this->model->id, $user->id); }
/** * Return current user * * @return Auth\Model\Guest|Auth\Model\User */ public static function getUser() { $session = new Session('auth'); if (!self::$currentUser && $session->user_id) { $user = Auth\Model\User::getByIdAndSession((int) $session->user_id, Session::getSessionId()); if ($user && isset($_COOKIE['authorization_token']) && $_COOKIE['authorization_token'] == $session->authorization_token) { self::$currentUser = $user; } else { self::logout(); } if (self::$currentUser) { self::$currentUser->updateLastActivity(); /*$timezone = self::$currentUser->setting(Auth\Model\User::TIME_ZONE_SETTING, null); if($timezone) { @date_default_timezone_set($timezone); }*/ } } if (!self::$currentUser) { self::$currentUser = Auth\Model\Guest::create(Session::getSessionId()); } return self::$currentUser; }
/** * @method POST * @json */ public function login() { /** @var \Bazalt\Auth\Model\User $user */ $user = null; $data = Validator::create($this->request->data); $data->field('password')->required(); $data->field('email')->required()->validator('exist_user', function ($value) use(&$user, $data) { $user = User::getUserByLoginPassword($value, $data['password'], true); return $user != null; }, 'User with this login/email does not exists'); if (!$data->validate()) { return new Response(400, $data->errors()); } $user->login($data['remember_me'] == 'true'); return new Response(Response::OK, $user->toArray()); }
public function testPost() { $response = new \Bazalt\Rest\Response(400, ['password' => ['required' => 'Field cannot be empty'], 'email' => ['required' => 'Field cannot be empty', 'exist_user' => 'User with this login/email does not exists']]); $this->assertResponse('POST /auth/session', ['data' => json_encode(array('hello' => 'computer'))], $response); $user = \Bazalt\Auth\Model\User::getById($this->user->id); $response = new \Bazalt\Rest\Response(200, $user->toArray()); $this->assertResponse('POST /auth/session', ['data' => json_encode(array('email' => $this->user->login, 'password' => '1'))], $response); // get logined user $response = new \Bazalt\Rest\Response(200, $user->toArray()); $this->assertResponse('GET /auth/session', ['contentType' => 'application/json'], $response); // logout $response = new \Bazalt\Rest\Response(200, '/is_guest/'); $this->assertRegExpResponse('DELETE /auth/session', [], $response); // guest logout $response = new \Bazalt\Rest\Response(200, '/is_guest/'); $this->assertRegExpResponse('DELETE /auth/session', [], $response); }
/** * @method POST * @json */ public function addUser() { $data = Validator::create((array) $this->request->data); $emailField = $data->field('email')->required()->email(); $user = User::create(); // check email $emailField->validator('uniqueEmail', function ($email) { return User::getUserByEmail($email, false) == null; }, 'User with this email already exists'); $userRoles = []; /*$data->field('roles')->validator('validRoles', function($roles) use (&$userRoles) { foreach ($roles as $role) { $userRoles[$role] = Role::getById($role); if (!$userRoles[$role]) { return false; } } return true; }, 'Invalid roles');*/ $data->field('login')->required(); $data->field('gender')->required(); if (!$data->validate()) { return new Response(400, $data->errors()); } $user->login = $data['login']; $user->email = $data['email']; $user->firstname = $data['firstname']; $user->secondname = $data['secondname']; $user->patronymic = $data['patronymic']; $user->password = User::cryptPassword($data['password']); $user->gender = $data['gender']; $user->save(); $user->Roles->clearRelations(array_keys($userRoles)); foreach ($userRoles as $role) { $user->Roles->add($role, ['site_id' => 6]); } // Create the message $message = \Swift_Message::newInstance()->setSubject('Благодарим за регистрацию на MixFree')->setFrom(array('*****@*****.**' => 'MixFree'))->setTo([$user->email])->setBody(sprintf('Ваш ключ активации: http://localhost/user/activation/%d/%s', $user->id, $user->getActivationKey())); $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('*****@*****.**')->setPassword('gjhndtqy777'); $mailer = \Swift_Mailer::newInstance($transport); $result = $mailer->send($message); return new Response(200, $user->toArray()); }
/** * @method PUT * @method POST * @json */ public function saveUser() { $data = Validator::create((array) $this->request->data); $emailField = $data->field('email')->required()->email(); $user = User::getById($data['id']); if (!$user) { return new Response(400, ['id' => 'User not found']); } $userRoles = []; $data->field('roles')->validator('validRoles', function ($roles) use(&$userRoles) { if ($roles) { foreach ($roles as $role) { $userRoles[$role] = Role::getById($role); if (!$userRoles[$role]) { return false; } } } return true; }, 'Invalid roles'); $data->field('login')->required(); $data->field('gender')->required(); if (!$data->validate()) { return new Response(400, $data->errors()); } $user->login = $data['login']; $user->email = $data['email']; $user->firstname = $data['firstname']; $user->secondname = $data['secondname']; $user->patronymic = $data['patronymic']; $user->birth_date = date('Y-m-d', strToTime($data['birth_date'])); //$user->password = User::cryptPassword($data['password']); $user->gender = $data['gender']; $user->is_active = $data['is_active']; $user->is_deleted = $data['is_deleted']; $user->save(); $user->Roles->clearRelations(array_keys($userRoles)); foreach ($userRoles as $role) { $user->Roles->add($role, ['site_id' => 6]); } return new Response(200, $user->toArray()); }
/** * @method POST * @json */ public function saveUser() { $data = new Validator((array) $this->request->data); $emailField = $data->field('email')->required()->email(); $isNew = false; if ($data->getData('id')) { $user = User::getById($data->getData('id')); if (!$user) { return new Response(400, ['id' => 'User not found']); } } else { $user = User::create(); // check email $emailField->validator('uniqueEmail', function ($email) { return User::getUserByEmail($email, false) == null; }, 'User with this email already exists'); $isNew = true; } $data->field('login')->required(); $data->field('gender')->required(); if (!$data->validate()) { return new Response(400, $data->errors()); } $user->login = $data->getData('email'); $user->email = $data->getData('email'); $user->firstname = $data->getData('first'); $user->lastname = $data->getData('last'); $user->password = User::cryptPassword($data->getData('password')); $user->gender = $data->getData('gender'); $user->is_active = $data->getData('is_active'); $user->save(); if ($isNew) { // Create the message $message = \Swift_Message::newInstance()->setSubject('Your subject')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo([$user->email])->setBody('Here is the message itself')->addPart('<q>Here is the message itself</q>', 'text/html'); $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('*****@*****.**')->setPassword('gjhndtqy777'); $mailer = \Swift_Mailer::newInstance($transport); $result = $mailer->send($message); print_r($result); } return new Response(200, $user->toArray()); }
protected function getJWTUser() { $userId = $this->getIssParam(); $user = $userId ? \Bazalt\Auth\Model\User::getById((int) $userId) : \Bazalt\Auth\Model\Guest::create(null); return $user; }
public static function getOnlineUsers() { $p = (int) CMS\Option::get(CMS_Bazalt::ONLINEPERIOD_OPTION, 5); $q = User::select()->where('last_activity BETWEEN ? AND ?', array(date('Y-m-d H:i:s', strtotime('now -' . $p . ' minutes')), date('Y-m-d H:i:s', strtotime('now +' . $p . ' minutes'))))->noCache(); return $q->fetchAll(); }