Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. Make/Remove Admin
  2. Gebruik dit om een ROLE_SUPER_ADMIN toe te voegen aan een user.
  3. STAP 1
  4. Maak een roleAction in de userController (Geen userController? Maak een CRUD van de User-entity)
  5. /**
  6. * Rol action
  7. *
  8. * @Route("/role/{id}", name="role_action")
  9. * @Method("GET")
  10. */
  11. public function roleAction( $id ) {
  12. $em = $this->getDoctrine()->getManager();
  13.  
  14.  
  15. $user = $em->getRepository( "App:User" )->find( $id );
  16. if ( $user->getId() == 1 ) {
  17. return $this->redirectToRoute( 'user_index' );
  18. } else {
  19.  
  20. if ( $user ) {
  21. if ( in_array( "ROLE_SUPER_ADMIN", $user->getRoles() ) ) {
  22. $user->removeRole( "ROLE_SUPER_ADMIN" );
  23. } else {
  24.  
  25. //Voeg admin rol toe
  26. $user->addRole( "ROLE_SUPER_ADMIN" );
  27. }
  28. //Save it to the database
  29. $em->persist( $user );
  30. $em->flush();
  31. }
  32. $users = $em->getRepository( 'App:User' )->findAll();
  33.  
  34. return $this->render( 'user/index.html.twig', array(
  35. 'users' => $users,
  36. ) );
  37. }
  38. }
  39.  
  40. STAP 2
  41. Zet wat JavaScript onderaan het {% endblock %}
  42. {% block javascripts %} <script> function role(user, btn) { if(btn == 'delete-admin-' + user) { console.log('btn:' + btn + '<br>' + 'user: '+ user); document.getElementById('delete-admin-' + user).className = 'btn btn-success'; document.getElementById('delete-admin-' + user).innerHTML = 'Maak Admin'; document.getElementById('delete-admin-' + user).id = 'make-admin-' + user; } else if(btn == 'make-admin-' + user){ console.log('btn:' + btn + '<br>' + 'user: '+ user); document.getElementById('make-admin-'+ user).className = 'btn btn-danger'; document.getElementById('make-admin-' + user).innerHTML = 'Verwijder Admin'; document.getElementById('make-admin-' + user).id = 'delete-admin-' + user; } var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", "/user/role/" + user, true); xmlhttp.send(); } </script> {% endblock %}
  43. STAP 3
  44. Zorg ervoor dat je de make/remove admin-knop ziet. Voeg deze toe aan de <table>.
  45. <td> <a class="btn btn-primary" href="{{ path('user_show', {'id': user.id}) }}">Bekijk</a> <a class="btn btn-warning" href="{{ path('user_edit', {'id': user.id}) }}">Bewerk</a> {% if user.username == "admin" %} {% else %} {% if user.roles[0] == 'ROLE_SUPER_ADMIN' %} <button type="button" id="delete-admin-{{ user.id }}" onclick="role({{ user.id }}, this.id)" class="btn btn-danger">Verwijder Admin </button> {% else %} <button type="button" id="make-admin-{{ user.id }}" onclick="role({{ user.id }}, this.id)" class="btn btn-success" >Maak Admin </button> {% endif %} {% endif %} </td>
  46. Als je de code er netjes uit wil laten zien in PHP Storm,
  47. gebruik dan ctrl + alt + L
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement