Example #1
0
File: User.php Project: arbi/MyCode
 /**
  * @return array
  */
 public function prepareSearchFormResources()
 {
     /**
      * @var UserGroupDAO $userGroupsDao
      * @var UserDashboardsDAO $dashboardsDao
      */
     $userGroupsDao = $this->getServiceLocator()->get('dao_user_user_group');
     $dashboardsDao = $this->getServiceLocator()->get('dao_user_dashboards');
     $citiesDao = new UserManager($this->getServiceLocator(), '\\ArrayObject');
     $teamService = $this->getServiceLocator()->get('service_team_team');
     $permissions = $userGroupsDao->getGroupsList();
     $dashboards = $dashboardsDao->getDashboardsList();
     $cities = $citiesDao->getUsersCountries();
     $isDepartment = false;
     $teams = $teamService->getTeamList(null, $isDepartment);
     return ['user_groups' => $permissions, 'ud_dashboards' => $dashboards, 'cities' => $cities, 'teams' => $teams];
 }
Example #2
0
 public function googleSigninAction()
 {
     $backofficeAuthenticationService = $this->getServiceLocator()->get('library_backoffice_auth');
     try {
         $request = $this->getRequest();
         $router = $this->getEvent()->getRouter();
         $loginUrl = $router->assemble([], ['name' => 'backoffice_user_login']);
         $lastRequestUrl = $request->getQuery('request_url', null);
         $dbAdapter = $this->getServiceLocator()->get('dbadapter');
         $error = $this->params()->fromQuery('error', false);
         if (!empty($error)) {
             return $this->redirect()->toUrl('/');
         }
         if (!is_null($lastRequestUrl)) {
             $session = new Container('requestUrl');
             $session->lastRequestUrl = $lastRequestUrl;
         }
         $this->layout('layout/login');
         $googleAuth = $this->getServiceLocator()->get('library_service_google_auth');
         $response = $googleAuth->authenticate($this->getServiceLocator());
         if ($response[0] == 'verified') {
             $userManager = new UserManager($this->getServiceLocator());
             $userInfo = $userManager->getUserByEmail($response[1]);
             if (!$userInfo instanceof \DDD\Domain\User\User) {
                 $requestUrl = new Container('requestUrl');
                 if (!empty($requestUrl)) {
                     $lastRequestUrl = $requestUrl->lastRequestUrl;
                 } else {
                     $lastRequestUrl = null;
                 }
                 $session = new Container('authFailed');
                 $session->authFailed = true;
                 return $this->redirect()->toRoute("backoffice_user_login", ["action" => "login"], ['query' => ['request_url' => $lastRequestUrl]]);
             }
             $userData = [];
             foreach ((array) $userInfo as $key => $row) {
                 $rawKey = preg_replace('/\\0\\*\\0/', '', $key);
                 $userData[$rawKey] = $row;
             }
             $userData = (object) $userData;
             $backofficeAuthenticationService->getStorage()->write($userData);
             $appConfig = $this->getServiceLocator()->get('config');
             $backofficeAuthenticationService->setAsBackofficeUser($appConfig['session']['config']['options']['cookie_domain']);
             $backofficeAuthenticationService->setRememberMyEmail($userData->email, $appConfig['session']['config']['options']['cookie_domain']);
             // update user last login date and time
             $userManagerService = $this->getServiceLocator()->get('service_user');
             $userManagerService->updateLastLogin($userData->id);
             $redirectUrl = $backofficeAuthenticationService->getUrlForRedirect();
             $requestUrl = new Container('requestUrl');
             if (!empty($requestUrl)) {
                 $lastRequestUrl = $requestUrl->lastRequestUrl;
             } else {
                 $lastRequestUrl = null;
             }
             if (!is_null($lastRequestUrl) && $lastRequestUrl != $loginUrl) {
                 $redirect = $lastRequestUrl;
             } else {
                 $redirect = $redirectUrl;
             }
             return $this->redirect()->toUrl($redirect);
         } else {
             header('Location: ' . $response);
             exit;
         }
     } catch (\Exception $e) {
         $session = new Container('authFailed');
         $session->authFailed = self::CONNECTION_TIMEDOUT;
         return $this->redirect()->toRoute('backoffice_user_login');
     }
 }
Example #3
0
 /**
  * @param Form $form
  * @param int $moneyAccountId
  * @return Form
  */
 public function fillData($form, $moneyAccountId)
 {
     /** @var UserManager $userDao */
     $userDao = new UserManager($this->getServiceLocator(), '\\ArrayObject');
     if ($moneyAccountId) {
         $users = $this->getMoneyAccountUsersInOperationTypes($moneyAccountId);
         $usersForView = $form->get('view_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_VIEW_TRANSACTION]) && count($users[self::OPERATION_VIEW_TRANSACTION])) {
             foreach ($users[self::OPERATION_VIEW_TRANSACTION] as $relUserId) {
                 if (!isset($usersForView[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $usersForView[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('view_transactions')->setOptions(['value_options' => $usersForView]);
                 }
             }
         }
         $usersForAdd = $form->get('add_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_ADD_TRANSACTION]) && count($users[self::OPERATION_ADD_TRANSACTION])) {
             foreach ($users[self::OPERATION_ADD_TRANSACTION] as $relUserId) {
                 if (!isset($usersForAdd[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $usersForAdd[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('add_transactions')->setOptions(['value_options' => $usersForAdd]);
                 }
             }
         }
         $transactionManagers = $form->get('manage_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_MANAGE_TRANSACTION]) && count($users[self::OPERATION_MANAGE_TRANSACTION])) {
             foreach ($users[self::OPERATION_MANAGE_TRANSACTION] as $relUserId) {
                 if (!isset($transactionManagers[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $transactionManagers[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('manage_transactions')->setOptions(['value_options' => $transactionManagers]);
                 }
             }
         }
         $accountManagers = $form->get('manage_transactions')->getOption('value_options');
         if (isset($users[self::OPERATION_MANAGE_ACCOUNT]) && count($users[self::OPERATION_MANAGE_ACCOUNT])) {
             foreach ($users[self::OPERATION_MANAGE_ACCOUNT] as $relUserId) {
                 if (!isset($accountManagers[$relUserId])) {
                     $userDomain = $userDao->getUserById($relUserId, true);
                     $accountManagers[$relUserId] = $userDomain['firstname'] . ' ' . $userDomain['lastname'];
                     $form->get('manage_transactions')->setOptions(['value_options' => $accountManagers]);
                 }
             }
         }
         $form->setData(['view_transactions' => isset($users[self::OPERATION_VIEW_TRANSACTION]) ? $users[self::OPERATION_VIEW_TRANSACTION] : [], 'add_transactions' => isset($users[self::OPERATION_ADD_TRANSACTION]) ? $users[self::OPERATION_ADD_TRANSACTION] : [], 'manage_transactions' => isset($users[self::OPERATION_MANAGE_TRANSACTION]) ? $users[self::OPERATION_MANAGE_TRANSACTION] : [], 'manage_account' => isset($users[self::OPERATION_MANAGE_ACCOUNT]) ? $users[self::OPERATION_MANAGE_ACCOUNT] : []]);
     }
     return $form;
 }