/** * @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]; }
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'); } }
/** * @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; }