*/
public function index(Request $request): Response {
//Without admin
- if (!$this->checker->isGranted($this->config['default']['admin'])) {
+ if (!$this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin']))) {
//Throw 403
throw $this->createAccessDeniedException($this->translator->trans('Unable to list users', [], $this->alias));
}
if (!($user = $this->doctrine->getRepository($this->config['class']['user'])->findOneByMail($mail))) {
//Add error message mail already exists
//XXX: prevent slugger reverse engineering by not displaying decoded mail
- $this->addFlash('error', $this->translator->trans('Account do not exists', [], $this->alias));
+ $this->addFlash('error', $this->translator->trans('The account do not exists', [], $this->alias));
//Redirect to register view
return $this->redirectToRoute($this->config['route']['register']['name'], $this->config['route']['register']['context']);
}
//Prevent access when not admin, user is not guest and not currently logged user
- if (!$this->checker->isGranted($this->config['default']['admin']) && $user != $this->security->getUser() || !$this->checker->isGranted('IS_AUTHENTICATED_FULLY')) {
+ if (!$this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin'])) && $user != $this->security->getUser() || !$this->checker->isGranted('IS_AUTHENTICATED_FULLY')) {
//Throw access denied
//XXX: prevent slugger reverse engineering by not displaying decoded mail
throw $this->createAccessDeniedException($this->translator->trans('Unable to access user', [], $this->alias));
//Set civility default
'civility_default' => $this->doctrine->getRepository($this->config['class']['civility'])->findOneByTitle($this->config['default']['civility']),
//Disable mail
- 'mail' => $this->checker->isGranted('ROLE_ADMIN'),
+ 'mail' => $this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin'])),
//Disable password
'password' => false,
//Set method
'method' => 'POST',
//Set domain
'translation_domain' => $this->alias
- ]+($this->checker->isGranted($this->config['default']['admin'])?$this->config['edit']['admin']:$this->config['edit']['field']));
+ ]+($this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin']))?$this->config['edit']['admin']:$this->config['edit']['field']));
//With admin role
- if ($this->checker->isGranted($this->config['default']['admin'])) {
+ if ($this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin']))) {
//Create the EditType form and give the proper parameters
$reset = $this->factory->create($this->config['edit']['view']['reset'], $user, [
//Set action to edit route name and context
//Catch double slug or mail
} catch (UniqueConstraintViolationException $e) {
//Add error message mail already exists
- $this->addFlash('error', $this->translator->trans('Account already exists', [], $this->alias));
+ $this->addFlash('error', $this->translator->trans('The account already exists', [], $this->alias));
}
}
//Without admin role
//XXX: prefer a reset on login to force user unspam action
- } elseif (!$this->checker->isGranted($this->config['default']['admin'])) {
+ } elseif (!$this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin']))) {
//Add notice
$this->addFlash('notice', $this->translator->trans('To change your password login with your mail and any password then follow the procedure', [], $this->alias));
}
//Template
$this->config['edit']['view']['name'],
//Context
- ['register' => $edit->createView(), 'sent' => $request->query->get('sent', 0)]+$this->config['edit']['view']['context']
+ ['register' => $edit->createView()]+$this->config['edit']['view']['context']
);
}
//Template
$this->config['login']['view']['name'],
//Context
- ['login' => $login->createView(), 'disabled' => $request->query->get('disabled', 0), 'sent' => $request->query->get('sent', 0)]+$context+$this->config['login']['view']['context']
+ ['login' => $login->createView(), 'disabled' => $request->query->get('disabled', 0)]+$context+$this->config['login']['view']['context']
);
}
}
}
- //Iterate on keys to translate
- foreach($this->config['translate'] as $translate) {
- //Extract keys
- $keys = explode('.', $translate);
-
- //Set current
- $current =& $context;
-
- //Iterate on each subkey
- do {
- //Skip unset translation keys
- if (!isset($current[current($keys)])) {
- continue(2);
- }
-
- //Set current to subkey
- $current =& $current[current($keys)];
- } while(next($keys));
-
- //Set translation
- $current = $this->translator->trans($current, [], $this->alias);
-
- //Remove reference
- unset($current);
- }
-
//Translate subject
$context['subject'] = $subject = ucfirst(
$this->translator->trans(
//Set context
->context($context);
+ //Add created notice
+ $this->addFlash('notice', $this->translator->trans('Account recovered', [], $this->alias));
+
//Try sending message
//XXX: mail delivery may silently fail
try {
//Send message
$this->mailer->send($message);
- //Add notice
+ //Add sent notice
$this->addFlash('notice', $this->translator->trans('Your recovery mail has been sent, to retrieve your account follow the recuperate link inside', [], $this->alias));
//Add junk warning
$this->addFlash('warning', $this->translator->trans('If you did not receive a recovery mail, check your Spam or Junk mail folder', [], $this->alias));
- //Redirect on the same route with sent=1 to cleanup form
- return $this->redirectToRoute($request->get('_route'), ['sent' => 1]+$request->get('_route_params'), 302);
+ //Redirect on home route to cleanup form
+ return $this->redirectToRoute($this->config['route']['home']['name'], $this->config['route']['home']['context']);
//Catch obvious transport exception
} catch(TransportExceptionInterface $e) {
//Add error message mail unreachable
//Template
$this->config['recover']['view']['name'],
//Context
- ['recover' => $form->createView(), 'sent' => $request->query->get('sent', 0)]+$this->config['recover']['view']['context']
+ ['recover' => $form->createView()]+$this->config['recover']['view']['context']
);
}
'method' => 'POST',
//Set domain
'translation_domain' => $this->alias
- ]+($this->checker->isGranted($this->config['default']['admin'])?$this->config['register']['admin']:$this->config['register']['field']));
+ ]+($this->checker->isGranted('ROLE_'.strtoupper($this->config['default']['admin']))?$this->config['register']['admin']:$this->config['register']['field']));
//With post method
if ($request->isMethod('POST')) {
} else {
//Throw exception
//XXX: consider missing group as fatal
- throw new \Exception(sprintf('Group %s listed in %s.default.group[%d] not found by title', $groupTitle, RapsysUserBundle::getAlias(), $i));
+ throw new \Exception(sprintf('Group %s listed in %s.default.group[%d] not found by title', $groupTitle, $this->alias, $i));
}
}
}
}
- //Iterate on keys to translate
- foreach($this->config['translate'] as $translate) {
- //Extract keys
- $keys = explode('.', $translate);
-
- //Set current
- $current =& $context;
-
- //Iterate on each subkey
- do {
- //Skip unset translation keys
- if (!isset($current[current($keys)])) {
- continue(2);
- }
-
- //Set current to subkey
- $current =& $current[current($keys)];
- } while(next($keys));
-
- //Set translation
- $current = $this->translator->trans($current, [], $this->alias);
-
- //Remove reference
- unset($current);
- }
-
//Translate subject
$context['subject'] = $subject = ucfirst(
$this->translator->trans(
//Send to database
$this->manager->flush();
- //Add error message mail already exists
+ //Add created notice
$this->addFlash('notice', $this->translator->trans('Account created', [], $this->alias));
//Try sending message
//Send message
$this->mailer->send($message);
- //Redirect on the same route with sent=1 to cleanup form
- return $this->redirectToRoute($request->get('_route'), ['sent' => 1]+$request->get('_route_params'));
+ //Add verification notice
+ $this->addFlash('notice', $this->translator->trans('Your verification mail has been sent, to activate your account you must follow the confirmation link inside', [], $this->alias));
+
+ //Add junk warning
+ $this->addFlash('warning', $this->translator->trans('If you did not receive a verification mail, check your Spam or Junk mail folders', [], $this->alias));
+
+ //Redirect on home route to cleanup form
+ return $this->redirectToRoute($this->config['route']['home']['name'], $this->config['route']['home']['context']);
//Catch obvious transport exception
} catch(TransportExceptionInterface $e) {
//Add error message mail unreachable
//Catch double subscription
} catch (UniqueConstraintViolationException $e) {
//Add error message mail already exists
- $this->addFlash('error', $this->translator->trans('Account already exists', [], $this->alias));
+ $this->addFlash('error', $this->translator->trans('The account already exists', [], $this->alias));
}
}
}
//Template
$this->config['register']['view']['name'],
//Context
- ['register' => $form->createView(), 'sent' => $request->query->get('sent', 0)]+$this->config['register']['view']['context']
+ ['register' => $form->createView()]+$this->config['register']['view']['context']
);
}
}