Диплом: Автоматизация управления проектами в студии APPCRAFT

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
119
$form->get('username')->addError(new
FormError('Пользователь с таким логином уже существует.'));
$valid = false;
}
$recaptcha = new
\ReCaptcha\ReCaptcha("6LdERaUUAAAAACqzY1vLbE8eM2jAv3daFDyVLQSP");
$resp = $recaptcha->verify($_POST['g-recaptcha-
response'], $_SERVER['REMOTE_ADDR']);
if (!($resp->isSuccess())) {
$valid = false;
$form->addError(new FormError('Поставьте галочку,
что Вы не робот!'));
}
if ($valid) {
/** @var UserPasswordEncoder $encoder */
$encoder = $this-
>get('security.password_encoder');
$userpassword = $user->getPassword();
$user->setSalt(User::generateSalt())
->setPassword($encoder->encodePassword($user,
$user->getPassword()));
$this->manager->persist($user);
$this->manager->flush();
$body = "
<html>
<body > <div style='background-color: #f5f5f5;
width:100%;margin:0px;padding-bottom:10px;min-
height:350px;padding-top:20px;'> <br />
<table style='background-color: #fff; color:#333;border-
radius:10px;max-width:600px;min-width:400px;margin:auto;padding-
left:20px;padding-right:20px;font-size:18px;padding-top:20px;box-
shadow: 0 0 10px rgba(0,0,0,0.5);'>
<tr>
120
<td style='text-align:center;font-size:28px;'><b>УЦ
Дельфа</b><br /><br /> </td>
</tr>
<tr>
<td style='text-align:left;'>
Здравствуйте! <br /><br />
</td>
</tr>
<tr>
<td style='text-align:left;'>
<br />
Только что Вы зарегистрировались <a
href='delfa72.ru'>на сайте учебногоц центра Дельфа</a>.<br />
</td>
</tr>
<tr>
<td style='text-align:left;'>
<br />
При регистрации Вы указали следующие данные: <br />
Имя пользователя: %login%<br />
Пароль: %password%<br />
</td>
</tr>
<tr>
<td style='text-align:left;color:#222;font-size:18px;'>
<br />
<hr>
121
</td>
</tr>
</table>
</div>
</body>
</html>\"
";
$body = preg_replace('/%login%/',$user-
>getUsername(), $body); //заменяем выражения
$body = preg_replace('/%password%/',$userpassword,
$body); //заменяем выражения
$emails = $user->getEmail();
/** @var \Swift_Mailer $mailer */
$mailer = $this->get('mailer');
$message = $mailer->createMessage()
->setSubject('Регистрация на сервисе')
-
>setFrom(array('noreply@'.$_SERVER['SERVER_NAME'] => 'УЦ Дельфа'))
->setTo($emails)
->setBody($body, 'text/html');
$mailer->send($message);
$token = new UsernamePasswordToken($user, null,
'user_provider', $user->getRoles());
$this->get('security.context')->setToken($token);
return $this->redirectToRoute('homepage');
}
}
$this->navigation = array('active' => 'registration');
$this->forms['user'] = $form->createView();
122
return $this-
>render('AppBundle:Security:registration.html.twig');
}
//напоминание пароля
/**
* @return Response
* @Config\Route("/remindpassword", name =
"site_general_remindpassword")
*/
public function remindpasswordAction()
{
$user = new User();
$form = $this->createForm(new RemindPasswordFormType(),
$user);
$form->handleRequest($this->request);
//обработка формы
if ($form->isSubmitted() && $form->isValid()) {
$valid = true;
/** @var User $user */
$user = $this->getRepository('User')-
>findOneBy(array('email'=>$form->get('email')->getData()));
if (is_null($user)) {
$form->get('email')->addError(new
FormError('Пользователь с таким email не зарегистрирован.'));
$valid = false;
}
$recaptcha = new
\ReCaptcha\ReCaptcha("6LdERaUUAAAAACqzY1vLbE8eM2jAv3daFDyVLQSP");
$resp = $recaptcha->verify($_POST['g-recaptcha-
response'], $_SERVER['REMOTE_ADDR']);
if (!($resp->isSuccess())) {
$valid = false;
123
$form->addError(new FormError('Поставьте галочку,
что Вы не робот!'));
}
if ($valid) {
/** @var UserPasswordEncoder $encoder */
$encoder = $this-
>get('security.password_encoder');
$userpassword = substr
(md5(uniqid(rand(),true)),rand(1,4),rand(6,8));
$user->setSalt(User::generateSalt())
->setPassword($encoder->encodePassword($user,
$userpassword));
$this->manager->persist($user);
$this->manager->flush();
$body = "
<html>
<body > <div style='background-color: #f5f5f5;
width:100%;margin:0px;padding-bottom:10px;min-
height:350px;padding-top:20px;'> <br />
<table style='background-color: #fff; color:#333;border-
radius:10px;max-width:600px;min-width:400px;margin:auto;padding-
left:20px;padding-right:20px;font-size:18px;padding-top:20px;box-
shadow: 0 0 10px rgba(0,0,0,0.5);'>
<tr>
<td style='text-align:center;font-size:28px;'><b>УЦ
Дельфа</b><br /><br /> </td>
</tr>
<tr>
<td style='text-align:left;'>
Здравствуйте! <br /><br />
</td>
</tr>
<tr>
<td style='text-align:left;'>
124
<br />
Только что Вы запросили новый пароль <a
href='delfa72.ru'>на сайте учебного центра Дельфа</a>.<br />
</td>
</tr>
<tr>
<td style='text-align:left;'>
<br />
Ваши данные для входа на сайт: <br />
Имя пользователя: %login%<br />
Пароль: %password%<br />
</td>
</tr>
<tr>
<td style='text-align:left;color:#222;font-size:18px;'>
<br />
<hr>
</td>
</tr>
</table>
</div>
</body>
</html>\"
";
$body = preg_replace('/%login%/',$user-
>getUsername(), $body); //заменяем выражения
$body = preg_replace('/%password%/',$userpassword,
$body); //заменяем выражения
$emails = $user->getEmail();
/** @var \Swift_Mailer $mailer */
$mailer = $this->get('mailer');
$message = $mailer->createMessage()
125
->setSubject('Восстановление пароля')
-
>setFrom(array('noreply@'.$_SERVER['SERVER_NAME'] => 'УЦ Дельфа'))
->setTo($emails)
->setBody($body, 'text/html');
$mailer->send($message);
return $this-
>redirectToRoute('site_general_remindpasswordsuccess');
}
}
$this->navigation = array('active' => 'remindpassword');
$this->forms['user'] = $form->createView();
return $this-
>render('AppBundle:Security:remindpassword.html.twig');
}
//страница с инстукцией по проверке почты, на которую был выслан
новый пароль
/**
* @return Response
* @Config\Route("/remindpasswordok", name =
"site_general_remindpasswordsuccess")
*/
public function remindpasswordsuccessAction()
{
$this->navigation = array('active' => 'remindpassword');
return $this-
>render('AppBundle:Security:remindpasswordok.html.twig');
}
126
}
<?php
namespace AppBundle\Controller;
use AppBundle\Entity\User;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityRepository;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use
Symfony\Component\Security\Core\Authorization\AuthorizationChecker
;
abstract class InitializableController extends Controller
{
/** @var AuthorizationChecker */
protected $authChecker;
/** @var array */
protected $forms;
/** @var EntityManager */
protected $manager;
/** @var array|EntityRepository[] */
protected $repositories;
/** @var Request */
protected $request;
/** @var Session */
protected $session;
/** @var User */
protected $user;
/** @var array */
protected $view;
127
/** @var array */
protected $navigation;
/**
* @param string $level
* @param string $view
* @param array $parameters
*/
public function addNotice($level, $view, array $parameters =
array())
{
$this->get('session')->getFlashBag()->add(
'notice.' . $level,
$this->renderView('AppBundle:Notice:' . $view,
$parameters)
);
}
/**
* @param $entity
* @return EntityRepository
*/
public function getRepository($entity)
{
if (!array_key_exists($entity, $this->repositories))
$this->repositories[$entity] = $this->manager-
>getRepository('AppBundle:' . $entity);
return $this->repositories[$entity];
}
128
public function initialize(Request $request)
{
$this->request = $request;
$this->authChecker = $this-
>get('security.authorization_checker');
$this->forms = array();
$this->navigation = array();
$this->manager = $this->getDoctrine()->getManager();
$this->repositories = array();
$this->session = $this->request->getSession();
$this->user = $this->getUser();
$this->view = array();
}
/**
* @param string $view
* @param array $parameters
* @param Response $response
* @return Response
*/
public function render($view, array $parameters = array(),
Response $response = null)
{
$parameters = array_merge($parameters, array(
'forms' => $this->forms,
'view' => $this->view,
'navigation'=>$this->navigation
));
return parent::render($view, $parameters, $response);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)