Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Make/Remove Admin
- Gebruik dit om een ROLE_SUPER_ADMIN toe te voegen aan een user.
- STAP 1
- Maak een roleAction in de userController (Geen userController? Maak een CRUD van de User-entity)
- /**
- * Rol action
- *
- * @Route("/role/{id}", name="role_action")
- * @Method("GET")
- */
- public function roleAction( $id ) {
- $em = $this->getDoctrine()->getManager();
- $user = $em->getRepository( "App:User" )->find( $id );
- if ( $user->getId() == 1 ) {
- return $this->redirectToRoute( 'user_index' );
- } else {
- if ( $user ) {
- if ( in_array( "ROLE_SUPER_ADMIN", $user->getRoles() ) ) {
- $user->removeRole( "ROLE_SUPER_ADMIN" );
- } else {
- //Voeg admin rol toe
- $user->addRole( "ROLE_SUPER_ADMIN" );
- }
- //Save it to the database
- $em->persist( $user );
- $em->flush();
- }
- $users = $em->getRepository( 'App:User' )->findAll();
- return $this->render( 'user/index.html.twig', array(
- 'users' => $users,
- ) );
- }
- }
- STAP 2
- Zet wat JavaScript onderaan het {% endblock %}
- {% 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 %}
- STAP 3
- Zorg ervoor dat je de make/remove admin-knop ziet. Voeg deze toe aan de <table>.
- <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>
- Als je de code er netjes uit wil laten zien in PHP Storm,
- gebruik dan ctrl + alt + L
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement