Guest User

Untitled

a guest
May 29th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. <?php
  2. namespace AppControllerUser;
  3.  
  4. use AppEntityUser;
  5. use AppFormUserEditUserType;
  6. use AppRepositoryUserRepository;
  7. use SymfonyBundleFrameworkBundleControllerController;
  8. use SymfonyComponentHttpFoundationRequest;
  9. use SymfonyComponentSecurityCoreEncoderUserPasswordEncoderInterface;
  10.  
  11. class EditController extends Controller
  12. {
  13. public function edit(Request $request, UserPasswordEncoderInterface $encoder)
  14. {
  15. $userInfo = ['username' => null, 'plainPassword' => null, 'password' => null, 'email' => null];
  16.  
  17. $form = $this->createForm(EditUserType::class, $userInfo);
  18. $form->handleRequest($request);
  19.  
  20. $user = new User();
  21. $oldPassword = $user->getPassword();
  22.  
  23. if ($form->isSubmitted() && $form->isValid()) {
  24. $userInfo = $form->getData();
  25.  
  26. $username = $userInfo['username'];
  27. $email = $userInfo['email'];
  28. $newPass = $userInfo['plainPassword'];
  29. $oldPass = $userInfo['password'];
  30.  
  31. $encryptOldPass = $encoder->encodePassword($user, $oldPass);
  32.  
  33. if ($oldPassword === $encryptOldPass) {
  34. $this->addFlash('danger', $oldPass. ' ' .$encryptOldPass. ' ' .$oldPassword);
  35. return $this->redirectToRoute('user_edit');
  36. } else {
  37. $this->addFlash('success', $oldPassword. '-' .$encryptOldPass);
  38. return $this->redirectToRoute('user_edit');
  39. }
  40.  
  41. $pass = $encoder->encodePassword($user, $newPass);
  42.  
  43. $user->setPassword($pass);
  44. $user->setEmail($email);
  45. $user->setUsername($username);
  46.  
  47. echo 'trey was here';
  48.  
  49. $this->addFlash('success', 'User Details Edited');
  50.  
  51. return $this->redirectToRoute('user_edit');
  52. }
  53.  
  54. return $this->render('user/edit.html.twig', array('form' => $form->createView()));
  55. }
  56. }
  57.  
  58. <?php
  59. namespace AppFormUser;
  60.  
  61. use SymfonyComponentFormAbstractType;
  62. use SymfonyComponentFormExtensionCoreTypeEmailType;
  63. use SymfonyComponentFormExtensionCoreTypePasswordType;
  64. use SymfonyComponentFormExtensionCoreTypeRepeatedType;
  65. use SymfonyComponentFormExtensionCoreTypeTextType;
  66. use SymfonyComponentFormFormBuilderInterface;
  67. use SymfonyComponentOptionsResolverOptionsResolver;
  68.  
  69. class EditUserType extends AbstractType
  70. {
  71. public function buildForm(FormBuilderInterface $builder, array $options)
  72. {
  73. $builder->add('email', EmailType::class)
  74. ->add('username', TextType::class)
  75. ->add('password', PasswordType::class, array())
  76. ->add('plainPassword', RepeatedType::class, array(
  77. 'type' => PasswordType::class,
  78. 'first_options' => array('label' => 'New Password'),
  79. 'second_options' => array('label' => 'New Repeat Password')
  80. ));
  81. }
  82.  
  83. public function configureOptions(OptionsResolver $resolver)
  84. {
  85. $resolver->setDefaults(array());
  86. }
  87. }
  88.  
  89. AppFormUserEditUserType:
  90. properties:
  91. oldPassword:
  92. - SymfonyComponentSecurityCoreValidatorConstraintsUserPassword:
  93. message: 'Invalid Password'
  94.  
  95. {% include 'builder/header.html.twig' %}
  96.  
  97. <div class="user-container" id="user-content">
  98. {% block body %}
  99. {% include 'builder/notices.html.twig' %}
  100.  
  101. <div class="user-container">
  102. <i class="fas fa-user-edit fa-5x"></i>
  103. </div>
  104.  
  105. <hr />
  106.  
  107. {{ form_start(form) }}
  108. {{ form_row(form.username, { 'attr': {'class': 'form-control', 'value': app.user.username} }) }}
  109. {{ form_row(form.email, { 'attr': {'class': 'form-control', 'value': app.user.email} }) }}
  110. {{ form_row(form.password, { 'attr': {'class': 'form-control'} }) }}
  111. {{ form_row(form.plainPassword.first, { 'attr': {'class': 'form-control'} }) }}
  112. {{ form_row(form.plainPassword.second, { 'attr': {'class': 'form-control'} }) }}
  113.  
  114. <div class="register-btn-container">
  115. <button class="btn btn-danger" id="return-to-dash-btn" type="button">Cancel!</button>
  116. <button class="btn btn-primary" type="submit">Update!</button>
  117. </div>
  118. {{ form_end(form) }}
  119. {% endblock %}
  120. </div>
  121.  
  122. {% include 'builder/footer.html.twig' %}
Add Comment
Please, Sign In to add comment