Example #1
0
 /**
  * Зберегти гостя як юзера в БД
  */
 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);
 }
Example #3
0
 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;
 }
Example #4
0
 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);
 }
Example #5
0
 /**
  * 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;
 }
Example #12
0
 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();
 }