public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $errors = array(); $userId = $request->request->get('id'); $issuesPerPage = $request->request->get('issues_per_page'); $notifyOwnChangesFlag = $request->request->get('notify_own_changes'); $countryId = $request->request->get('country_id'); $emailAddress = $request->request->get('email_address'); if (empty($emailAddress)) { $errors['empty_email'] = true; } else { if (!Util::isValidEmail($emailAddress)) { $errors['email_not_valid'] = true; } } $emailData = Util::checkEmailAddressExistenceWithinClient(mb_strtolower($emailAddress), $userId, $session->get('client/id')); if ($emailData) { $errors['email_already_exists'] = true; } if (0 == count($errors)) { $parameters = array(array('field' => 'issues_per_page', 'value' => $issuesPerPage, 'type' => 'i'), array('field' => 'notify_own_changes_flag', 'value' => $notifyOwnChangesFlag, 'type' => 'i'), array('field' => 'country_id', 'value' => $countryId, 'type' => 'i'), array('field' => 'email', 'value' => $emailAddress, 'type' => 's')); $this->getRepository(UbirimiUser::class)->updatePreferences($userId, $parameters); $session->set('user/issues_per_page', $issuesPerPage); } return new JsonResponse($errors); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $session->set('selected_product_id', -1); $userId = $request->get('id'); $location = $request->get('location', 'user_list'); if ($userId) { $user = $this->getRepository(UbirimiUser::class)->getById($userId); if ($user['client_id'] != $session->get('client/id')) { return new RedirectResponse('/general-settings/bad-link-access-denied'); } } $email = $user['email']; $firstName = $user['first_name']; $lastName = $user['last_name']; $username = $user['username']; $errors = array('empty_email' => false, 'email_not_valid' => false, 'empty_username' => false, 'invalid_username' => false, 'duplicate_username' => false, 'empty_first_name' => false, 'empty_last_name' => false, 'email_already_exists' => false, 'at_least_one_administrator' => false); if ($request->request->has('confirm_update_user')) { $userId = Util::cleanRegularInputField($request->request->get('user_id')); $email = Util::cleanRegularInputField($request->request->get('email')); $firstName = Util::cleanRegularInputField($request->request->get('first_name')); $lastName = Util::cleanRegularInputField($request->request->get('last_name')); $username = Util::cleanRegularInputField($request->request->get('username')); $clientAdministrators = $this->getRepository(UbirimiClient::class)->getAdministrators($session->get('client/id'), $userId); $clientAdministratorFlag = 0; if ($request->request->has('client_administrator_flag')) { $clientAdministratorFlag = Util::cleanRegularInputField($request->request->get('client_administrator_flag')); } $customerServiceDeskFlag = 0; if ($request->request->has('customer_service_desk_flag')) { $customerServiceDeskFlag = Util::cleanRegularInputField($request->request->get('customer_service_desk_flag')); } if (!$clientAdministrators && $clientAdministratorFlag == 0) { $errors['at_least_one_administrator'] = true; } else { if ($clientAdministratorFlag == 0 && $clientAdministrators && $clientAdministrators->num_rows == 0) { $errors['at_least_one_administrator'] = true; } } if (empty($email)) { $errors['empty_email'] = true; } else { if (!Util::isValidEmail($email)) { $errors['email_not_valid'] = true; } } $emailData = Util::checkEmailAddressExistenceWithinClient(mb_strtolower($email), $userId, $session->get('client/id')); if ($emailData) { $errors['email_already_exists'] = true; } if (empty($firstName)) { $errors['empty_first_name'] = true; } if (empty($lastName)) { $errors['empty_last_name'] = true; } if (empty($username)) { $errors['empty_username'] = true; } if (!Util::validateUsername($username)) { $errors['invalid_username'] = true; } else { $existingUser = $this->getRepository(UbirimiUser::class)->getByUsernameAndClientId($username, $session->get('client/id'), null, $userId); if ($existingUser) { $errors['duplicate_username'] = true; } } if (Util::hasNoErrors($errors)) { $currentDate = Util::getServerCurrentDateTime(); $this->getRepository(UbirimiUser::class)->updateById($userId, $firstName, $lastName, $email, $username, null, $clientAdministratorFlag, $customerServiceDeskFlag, $currentDate); $userUpdated = $this->getRepository(UbirimiUser::class)->getById($userId); $this->getLogger()->addInfo('UPDATE User ' . $userUpdated['username'], $this->getLoggerContext()); if ($location == 'user_list') { return new RedirectResponse('/general-settings/users'); } return new RedirectResponse('/user/profile/' . $userId); } } $sectionPageTitle = $session->get('client/settings/title_name') . ' / GeneralSettings Settings / Update User'; $menuSelectedCategory = 'general_user'; return $this->render(__DIR__ . '/../../Resources/views/user/Edit.php', get_defined_vars()); }