| Current Path : /var/www/v3.cesa.co.za/src/UserBundle/Controller/ |
| Current File : /var/www/v3.cesa.co.za/src/UserBundle/Controller/DefaultController.php |
<?php
namespace App\UserBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use App\ContentBundle\Entity\Files;
use App\CoreBundle\Services\ServiceGetterManager;
use App\UserBundle\Form\Type\UserForgotPwType;
use App\UserBundle\Form\Type\UserMyDetailsType;
use App\UserBundle\Form\Type\UserRegisterType;
use App\UserBundle\Form\Type\UserResetPwType;
use App\TravelBundle\Form\Type\EstablishmentRegisterType;
use App\TravelBundle\Form\Type\EstablishmentI18nRegisterType;
class DefaultController extends AbstractController {
public function indexAction(Request $request, ServiceGetterManager $sg, $name) {
return $this->render('@UserBundle/Default/index.html.twig', array('name' => $name));
}
public function registerAction(Request $request, ServiceGetterManager $sg) {
try {
$registerForm = $this->createForm(UserRegisterType::class);
if ($request->getMethod() == 'POST') {
$registerForm->handleRequest($request);
if ($registerForm->isSubmitted() && $registerForm->isValid()) {
$userListManager = $sg->get('user_list.manager');
$requestValues = $request->get('user_register');
$requestValues['user_type_id'] = $sg->get('system_setting.manager')->getSetting('fe_user_type');
$requestValues['is_active'] = true;
$requestValues['deleted'] = false;
$userList = null;
$testCreate = $userListManager->saveFromRequest($requestValues, $userList);
if (strlen($testCreate) <= 0 && isset($requestValues['company_name']) && strlen($requestValues['company_name']) > 0) {
$companyManager = $sg->get('companies.manager');
$company = $companyManager->saveQuick($requestValues['company_name'], $userList);
if (isset($requestValues['address_postal'])) {
$companyManager->setAddressPostalId($company, $requestValues['address_postal']);
}
if (isset($requestValues['vat_number'])) {
$company->setVatNumber($requestValues['vat_number']);
$companyManager->save($company);
}
if (isset($requestValues['address_physical'])) {
$companyManager->setAddressPostalId($company, $requestValues['address_physical']);
}
$systemSettingManager = $sg->get('system_setting.manager');
$userListManager->linkAccessLevel($userList, array($systemSettingManager->getSetting('company_administrator_access_level')));
}
if (strlen($testCreate) <= 0 && isset($requestValues['user_tel_no_mobile'])) {
$userListManager->setUserTelNoMobileId($userList, $requestValues['user_tel_no_mobile']);
}
if (strlen($testCreate) <= 0 && isset($requestValues['address_postal'])) {
$userListManager->setUserAddressPostalId($userList, $requestValues['address_postal']);
}
$idDocArr = $request->files->get('user_register');
$docUploaded = false;
if (strlen($testCreate) <= 0) {
$userListManager->notifyAdmins($userList);
if ($sg->get('system_setting.manager')->getSetting('user_register_verify_e_mail', 0) > 0) {
$this->addFlash('success', 'Thank you for your registration. Please check your inbox for a verification e-mail. You can use the link in that e-mail to verify your e-mail address and log in. '
. 'Please be sure to check your Junk/ Spam mail folder as well.');
} else {
$this->addFlash('success', 'Thank you for your registration. You may now log in.');
}
return $this->redirect($this->generateUrl('login'));
// return $this->render('@UserBundle/Default/register.success.html.twig', array('userLanguage' => $userLanguage));
} else {
$registerForm->get('username')->addError(new FormError($testCreate));
}
} else { //user form is valid
$this->addFlash('error', 'There was a problem with your registration. Please check the error messages below.');
}
}
} catch (\Exception $ex) {
$logger = $sg->get('error_log.manager');
$logger->error('Error on register page: ' . $ex->getMessage() . ' - ' . $ex->getTraceAsString());
return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage())));
}
$route = $sg->get('system_setting.manager')->getSetting('register_template', '@UserBundle/Default/register.html.twig');
return $this->render($route, array('form' => $registerForm->createView()));
}
public function forgotPwAction(Request $request, ServiceGetterManager $sg) {
$forgotPwForm = $this->createForm(UserForgotPwType::class);
if ($request->getMethod() == 'POST') {
$forgotPwForm->handleRequest($request);
if ($forgotPwForm->isValid()) {
$requestValues = $request->get('user_forgot_pw');
$feedbackArray = $sg->get('user_list.manager')->sendResetLink($requestValues['e_mail_address_string']);
if ($feedbackArray['success']) {
$this->addFlash('success', 'Thank you. We have sent you an e-mail with a link you can click on to reset your password.');
} else {
$this->addFlash('error', $feedbackArray['message']);
}
}
}
$route = $sg->get('system_setting.manager')->getSetting('forgot_pwd_template', '@UserBundle/Default/forgot.html.twig');
return $this->render($route, array('form' => $forgotPwForm->createView(), 'pageTitleString' => 'Reset password'));
}
/**
* Reset user password success
*
* @return Response
*/
public function resetPwAction(Request $request, ServiceGetterManager $sg) {
$userListManager = $sg->get('user_list.manager');
$token = $request->get('token');
// $userList = $userListManager->checkResetCode($token);
$resetForm = $this->createForm(UserResetPwType::class);
if ($request->getMethod() == 'POST') {
$resetForm->handleRequest($request);
if ($resetForm->isValid()) {
$resetValues = $request->get('user_reset_pw');
$userList = $userListManager->checkResetCode($resetValues['reset_code']);
if (is_object($userList)) {
$userList->setPlainPassword($resetValues['password']['password']);
$userList->setIsActive(true);
$userListManager->updatePassword($userList);
$userListManager->save($userList);
$this->addFlash('success', 'Your password has been reset. You may now log in. Your username is: '
. $userList->getUsername());
return $this->redirect($this->generateUrl('login'));
} else {
$this->addFlash('error', 'Invalid reset code or code has expired. Please try again.');
return $this->redirect($this->generateUrl('iga_user_resetting_request'));
}
} else {
$this->addFlash('error', 'Please complete the form carefully');
}
} //post
// $userList = $sg->get('user_list.manager')->checkToken($token);
$route = $sg->get('system_setting.manager')->getSetting('reset_pwd_template', '@UserBundle/Default/reset.success.html.twig');
return $this->render($route, array(
'token' => $token,
'form' => $resetForm->createView(),
'pageTitleString' => 'Reset password',
));
}
public function myDetailsAction(Request $request, ServiceGetterManager $sg) {
try {
$userListManager = $sg->get('user_list.manager');
$userList = $userListManager->getLoggedInUser();
if (!is_object($userList) || !$userList->getGranted('IS_AUTHENTICATED_FULLY')) {
throw new \Exception('You need to log in to access this page');
}
$userListForm = $this->createForm(UserMyDetailsType::class, null, array('user_list' => $userList));
if ($request->getMethod() == 'POST') {
$userListForm->handleRequest($request);
if ($userListForm->isValid()) {
$requestValues = $request->get('user_my_details');
$requestValues['id'] = $userList->getId();
$requestValues['user_type_id'] = $userList->getUserTypes()->getId();
$requestValues['is_active'] = true;
$requestValues['deleted'] = false;
if (isset($requestValues['e_mail_address_string'])) {
$userList->setUserEMailAddressString($requestValues['e_mail_address_string']);
} else {
$userList->setUserEMailAddressString($requestValues['username']);
}
$requestValues['e_mail_address'] = $userList->getUserEMailAddress();
$requestValues['ignore_empty_pwd'] = true;
$testCreate = $userListManager->saveFromRequest($requestValues);
if (strlen($testCreate) <= 0) {
$userListManager->notifyAdmins($userList, false);
return $this->render('@UserBundle/Default/my_details.success.html.twig');
} else {
$userListForm->get('username')->addError(new FormError($testCreate));
}
}
}
} catch (\Exception $ex) {
$logger = $sg->get('error_log.manager');
$logger->error('Error on my details page: ' . $ex->getMessage() . ' - ' . $ex->getTraceAsString());
return $this->redirect($this->generateUrl('iga_core_500', array('message' => $ex->getMessage())));
}
$route = $sg->get('system_setting.manager')->getSetting('my_details_template', '@UserBundle/Default/my_details.html.twig');
return $this->render($route, array('form' => $userListForm->createView(), 'userList' => $userList));
}
public function fetchUserSelect2AjaxAction(Request $request, ServiceGetterManager $sg) {
try {
$return = array('result' => array());
$companyId = $request->get('company_id');
if ($companyId == 'undefined') {
$companyId = '';
}
$search = $request->get('q');
if (is_array($search)) {
$search = $search['term'];
}
$return['result'] = $sg->get('user_list.manager')->findBySearchCompany($search, $companyId);
} catch (\Exception $ex) {
$logger = $sg->get('error_log.manager');
$logger->error('Error on user ajax lookup: ' . $ex->getTraceAsString());
$return['error_message'] = $ex->getMessage();
}
return new Response(json_encode($return), 200, array('Content-Type' => 'text/json'));
}
public function fetchUserDetailsAction(Request $request, ServiceGetterManager $sg, $userListId) {
$return = array('user_list' => array(), 'error_message' => '');
try {
$return = $sg->get('user_list.manager')->getUserListObjectArray($userListId);
} catch (\Exception $ex) {
$logger = $sg->get('error_log.manager');
$logger->error('Error on user ajax lookup: ' . $ex->getTraceAsString());
$return['error_message'] = $ex->getMessage();
}
return new Response(json_encode($return), 200, array('Content-Type' => 'text/json'));
}
public function subscribeNewsletterAction(Request $request, ServiceGetterManager $sg) {
if ($request->getMethod() == 'POST') {
$eMailAddress = $request->get('e_mail_address');
$userList = null;
$message = $sg->get('user_list.manager')->saveFromRequest(
array('username' => $eMailAddress, 'e_mail_address' => $eMailAddress, 'user_types' => $sg->get('system_setting.manager')->getSetting('fe_user_type'), 'e_mail_address_subscribed' => true), $userList
);
if (strlen($message) <= 0) {
$this->addFlash('success', 'Thank you for subscribing to our newsletter');
} else {
$this->addFlash('warning', 'We could not subscribe you to our newsletter: ' . $message);
}
}
return $this->redirect($this->generateUrl('home'));
}
public function unsubscribeNewsletterAction(Request $request, ServiceGetterManager $sg) {
$unsub = $request->get('unsub');
$message = $sg->get('user_list.manager')->unsubscribe($unsub);
if (strlen($message) <= 0) {
$this->addFlash('success', 'Thank you. We have unsubscribed you from our newsletter.');
} else {
$this->addFlash('warning', 'We could not unsubscribe you from our newsletter: ' . $message);
}
return $this->redirect($this->generateUrl('home'));
}
}