Ejemplo n.º 1
0
 public function getAppliedFields()
 {
     try {
         $this->apply($this->user->getCompanyId() === $this->company->getId() ? $this->user->getAccessFlag() : 2, $this->company);
         return $this->result;
     } catch (NotFoundCompanyException $err) {
         return $err->getError();
     }
 }
Ejemplo n.º 2
0
 /**
  * @param int $access_flag
  * @param User $mTargetUser
  */
 private function apply($access_flag, $mTargetUser)
 {
     if ($this->context_company->isEmpty()) {
         throw new NotFoundCompanyException();
     }
     if ($access_flag == 2) {
         throw new UserAccessDeniedException();
     }
     $mAccessManager = new UserAccessManager();
     $tempUserFields = array();
     if ($mAccessManager->can($access_flag, 'id')) {
         $tempUserFields['id'] = intval($mTargetUser->getId());
     }
     if ($mAccessManager->can($access_flag, 'email')) {
         $tempUserFields['email'] = $mTargetUser->getEmail();
     }
     if ($mAccessManager->can($access_flag, 'first_name')) {
         $tempUserFields['first_name'] = $mTargetUser->getFirstName();
     }
     if ($mAccessManager->can($access_flag, 'last_name')) {
         $tempUserFields['last_name'] = $mTargetUser->getLastName();
     }
     if ($mAccessManager->can($access_flag, 'patronymic')) {
         $tempUserFields['patronymic'] = $mTargetUser->getPatronymicName();
     }
     if ($mAccessManager->can($access_flag, 'photo')) {
         $tempUserFields['photo'] = $mTargetUser->getPhoto();
     }
     if ($mAccessManager->can($access_flag, 'phone')) {
         $tempUserFields['phone'] = $mTargetUser->getPhone();
     }
     if ($mAccessManager->can($access_flag, 'register_time')) {
         $tempUserFields['register_time'] = intval($mTargetUser->getRegisterTime());
     }
     if ($mAccessManager->can($access_flag, 'last_logged_time')) {
         $tempUserFields['last_logged_time'] = intval($mTargetUser->getLastLoggedTime());
     }
     if ($mAccessManager->can($access_flag, 'company_id')) {
         $tempUserFields['company_id'] = intval($mTargetUser->getCompanyId());
     }
     if ($mAccessManager->can($access_flag, 'access_flag')) {
         $tempUserFields['access_flag'] = intval($mTargetUser->getAccessFlag());
     }
     if ($mAccessManager->can($access_flag, 'access_flag')) {
         $tempUserFields['user_group'] = $mTargetUser->getUserGroupKey();
     }
     if ($mAccessManager->can($access_flag, 'sms_notify')) {
         $tempUserFields['sms_notify'] = $mTargetUser->isSmsNotificationEnabled();
     }
     if ($mAccessManager->can($access_flag, 'recent_activity_time')) {
         $tempUserFields['recent_activity_time'] = intval($mTargetUser->getRecentActivityTime());
     }
     $this->result = $tempUserFields;
 }
Ejemplo n.º 3
0
 public function signIn()
 {
     $mEmail = $this->data['email'];
     $mPassword = $this->data['password'];
     $mCompanyDomain = $this->data['domain'];
     $user = new User($this->db);
     $user->allocateByEmail($mEmail);
     $mCompany = new Company($this->db);
     $mCompany->allocateByDomain($mCompanyDomain);
     if ($user->isEmpty() || $mCompany->isEmpty() || $mCompany->getId() != $user->getCompanyId() || !$user->isPasswordEqual($mPassword)) {
         return;
     }
     $user->updateRecentActivityTime();
     $key_manager = new KeyManager();
     $access_key = $this->generateKey();
     $key = $key_manager->createKey($user->getId(), $access_key);
     $csrf_token = sha1($key . 'success');
     $user->addAccessKey($access_key);
     $this->setCookie(CheckAuthorization::IDENTIFIER, $key, time() + 365 * 24 * 3600, '/', $_SERVER['HTTP_HOST']);
     $this->setCookie(CheckAuthorization::CSRF_TOKEN_NAME, $csrf_token, time() + 365 * 24 * 3600, '/', $_SERVER['HTTP_HOST']);
     $this->setSession(CheckAuthorization::IDENTIFIER, $key);
     $this->result = true;
 }