Commit 7e525a06b1fa213984de07f65a573920a15027bc

Authored by Wilmer Ramones
1 parent 5d8300b3ab
Exists in master

creada la gestion de los usuarios y la permisologia de vista de los servicios a traves del ROL

app/Resources/views/base_app.html.twig
@@ -51,10 +51,10 @@ @@ -51,10 +51,10 @@
51 <div class="subnavbar-inner"> 51 <div class="subnavbar-inner">
52 <div class="container"> 52 <div class="container">
53 <ul class="mainnav"> 53 <ul class="mainnav">
54 - <li {% if (app.request.attributes.get('_route') == 'cea_index') %} class="active" {% endif %}><a href="{{path('cea_index')}}"><i class="fa fa-list"></i><span>Principal</span> </a> </li> 54 + <li {% if (app.request.attributes.get('_route') == 'cea_index') %} class="active" {% endif %}><a href="{{path('cea_index')}}"><i class="fa fa-leaf"></i><span>Principal</span> </a> </li>
55 {% if is_granted('ROLE_ADSCRITO') %} 55 {% if is_granted('ROLE_ADSCRITO') %}
56 <li class="dropdown"> 56 <li class="dropdown">
57 - <a class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-dashboard"></i> 57 + <a class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-gears"></i>
58 <span>Servicios Docente</span> <b class="caret"></b> 58 <span>Servicios Docente</span> <b class="caret"></b>
59 </a> 59 </a>
60 <ul class="dropdown-menu"> 60 <ul class="dropdown-menu">
@@ -66,8 +66,8 @@ @@ -66,8 +66,8 @@
66 {% endif %} 66 {% endif %}
67 </ul> 67 </ul>
68 <ul class="pull-right"> 68 <ul class="pull-right">
69 - {% if is_granted('ROLE_COORDINADOR_NACIONAL') %}  
70 - <li class="dropdown"><a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-dashboard"></i><span>Ver Adscripciones</span> <b class="caret"></b></a> 69 + {% if is_granted('ROLE_COORDINADOR_REGIONAL') %}
  70 + <li class="dropdown"><a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-list"></i><span>Ver Adscripciones</span> <b class="caret"></b></a>
71 <ul class="dropdown-menu"> 71 <ul class="dropdown-menu">
72 <li> <a data-toggle="modal" data-target="#buscarAdscripcion">Buscar Adscripcion</a></li> 72 <li> <a data-toggle="modal" data-target="#buscarAdscripcion">Buscar Adscripcion</a></li>
73 <li><a href="{{ path('cea_adscripciones')}}">En espera de Aprobación</a></li> 73 <li><a href="{{ path('cea_adscripciones')}}">En espera de Aprobación</a></li>
@@ -76,7 +76,7 @@ @@ -76,7 +76,7 @@
76 </ul> 76 </ul>
77 </li> 77 </li>
78 78
79 - <li class="dropdown"><a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-dashboard"></i><span>Ver Solicitudes</span> <b class="caret"></b></a> 79 + <li class="dropdown"><a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-group"></i><span>Ver Solicitudes</span> <b class="caret"></b></a>
80 <ul class="dropdown-menu"> 80 <ul class="dropdown-menu">
81 <li> <a data-toggle="modal" data-target="#buscarServicios">Buscar Servicios</a></li> 81 <li> <a data-toggle="modal" data-target="#buscarServicios">Buscar Servicios</a></li>
82 <li><a href="{{ path('cea_servicios', {'tipo' : 'antiguedad'})}}">En espera de Aprobación</a></li> 82 <li><a href="{{ path('cea_servicios', {'tipo' : 'antiguedad'})}}">En espera de Aprobación</a></li>
@@ -84,8 +84,12 @@ @@ -84,8 +84,12 @@
84 <li><a href="{{ path('cea_servicios', { 'tipo' : 'antiguedad', 'estatus': 3 })}}">Rechazadas</a></li> 84 <li><a href="{{ path('cea_servicios', { 'tipo' : 'antiguedad', 'estatus': 3 })}}">Rechazadas</a></li>
85 </ul> 85 </ul>
86 </li> 86 </li>
87 - </ul>  
88 {% endif %} 87 {% endif %}
  88 + {% if is_granted('ROLE_ADMINISTRADOR') %}
  89 + <li {% if (app.request.attributes.get('_route') == 'admin_usuarios_index') %} class="active" {% endif %}><a href="{{path('admin_usuarios_index')}}"><i class="fa fa-user"></i><span>Gestión de Usuarios</span> </a> </li>
  90 + {% endif %}
  91 + </ul>
  92 +
89 </div> 93 </div>
90 <!-- /container --> 94 <!-- /container -->
91 </div> 95 </div>
app/Resources/views/cea/servicios.html.twig
@@ -21,6 +21,8 @@ @@ -21,6 +21,8 @@
21 </thead> 21 </thead>
22 <tbody> 22 <tbody>
23 {% for servicio in servicios %} 23 {% for servicio in servicios %}
  24 + {% if not is_granted('ROLE_COORDINADOR_NACIONAL') %}
  25 + {% if servicio.idRolInstitucion.idInstitucion.idEjeParroquia.idEje == app.user.idRolInstitucion.idInstitucion.idEjeParroquia.idEje %}
24 <tr> 26 <tr>
25 <td>{{servicio.id}}</td> 27 <td>{{servicio.id}}</td>
26 <td> 28 <td>
@@ -31,7 +33,7 @@ @@ -31,7 +33,7 @@
31 33
32 </td> 34 </td>
33 <td> 35 <td>
34 - {{servicio.idRolInstitucion.IdRol.IdAreaPersona.nombre}} 36 + {{servicio.idRolInstitucion.IdRol.IdAreaInstitucion.nombre}}
35 </td> 37 </td>
36 <td> 38 <td>
37 {{servicio.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}} 39 {{servicio.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}}
@@ -44,6 +46,33 @@ @@ -44,6 +46,33 @@
44 </td> 46 </td>
45 47
46 </tr> 48 </tr>
  49 + {%endif%}
  50 + {%else%}
  51 +
  52 + <tr>
  53 + <td>{{servicio.id}}</td>
  54 + <td>
  55 + {{servicio.idRolInstitucion.idRol.idPersona.PrimerNombre}}
  56 + {{servicio.idRolInstitucion.idRol.idPersona.PrimerApellido}}
  57 + ( {{servicio.idRolInstitucion}} )
  58 +
  59 +
  60 + </td>
  61 + <td>
  62 + {{servicio.idRolInstitucion.IdRol.IdAreaInstitucion.nombre}}
  63 + </td>
  64 + <td>
  65 + {{servicio.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}}
  66 + </td>
  67 + <td>{{servicio.idRolInstitucion.idInstitucion.idEjeParroquia.idParroquia.idMunicipio.idEstado}} </td>
  68 + <td>
  69 + <a href="{{ path('cea_servicio_show', { 'id': servicio.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  70 + <a href="javascript:;" class="btn btn-xs btn-success"><i class="fa fa-check"> </i></a>
  71 + <a href="javascript:;" class="btn btn-danger btn-xs"><i class="fa fa-times"> </i></a></td>
  72 + </td>
  73 +
  74 + </tr>
  75 + {%endif%}
47 {% endfor %} 76 {% endfor %}
48 77
49 </tbody> 78 </tbody>
app/Resources/views/cea/solicitudes.html.twig
@@ -21,29 +21,58 @@ @@ -21,29 +21,58 @@
21 </thead> 21 </thead>
22 <tbody> 22 <tbody>
23 {% for adscripcion in adscripciones %} 23 {% for adscripcion in adscripciones %}
24 - <tr>  
25 - <td>{{adscripcion.id}}</td>  
26 - <td>  
27 - {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerNombre}}  
28 - {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerApellido}}  
29 - ( {{adscripcion.idRolInstitucion}} )  
30 -  
31 -  
32 - </td>  
33 - <td>  
34 - {{adscripcion.idRolInstitucion.IdRol.IdAreaPersona.nombre}}  
35 - </td>  
36 - <td>  
37 - {{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}}  
38 - </td>  
39 - <td>{{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.idParroquia.idMunicipio.idEstado}} </td>  
40 - <td>  
41 - <a href="{{ path('cea_solicitudes_show', { 'id': adscripcion.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>  
42 - <a href="javascript:;" class="btn btn-xs btn-success"><i class="fa fa-check"> </i></a>  
43 - <a href="javascript:;" class="btn btn-danger btn-xs"><i class="fa fa-times"> </i></a></td>  
44 - </td>  
45 -  
46 - </tr> 24 + {% if not is_granted('ROLE_COORDINADOR_NACIONAL') %}
  25 + {% if adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.idEje == app.user.idRolInstitucion.idInstitucion.idEjeParroquia.idEje %}
  26 + <tr>
  27 + <td>{{adscripcion.id}}</td>
  28 + <td>
  29 + {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerNombre}}
  30 + {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerApellido}}
  31 + ( {{adscripcion.idRolInstitucion}} )
  32 +
  33 +
  34 + </td>
  35 + <td>
  36 + {{adscripcion.idRolInstitucion.IdRol.IdAreaInstitucion.nombre}}
  37 + </td>
  38 + <td>
  39 + {{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}}
  40 + </td>
  41 + <td>{{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.idParroquia.idMunicipio.idEstado}} </td>
  42 + <td>
  43 + <a href="{{ path('cea_solicitudes_show', { 'id': adscripcion.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  44 + <a href="javascript:;" class="btn btn-xs btn-success"><i class="fa fa-check"> </i></a>
  45 + <a href="javascript:;" class="btn btn-danger btn-xs"><i class="fa fa-times"> </i></a></td>
  46 + </td>
  47 +
  48 + </tr>
  49 + {% endif %}
  50 + {% else %}
  51 + <tr>
  52 + <td>{{adscripcion.id}}</td>
  53 + <td>
  54 + {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerNombre}}
  55 + {{adscripcion.idRolInstitucion.idRol.idPersona.PrimerApellido}}
  56 + ( {{adscripcion.idRolInstitucion}} )
  57 +
  58 +
  59 + </td>
  60 + <td>
  61 + {{adscripcion.idRolInstitucion.IdRol.IdAreaInstitucion.nombre}}
  62 + </td>
  63 + <td>
  64 + {{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.IdEje}}
  65 + </td>
  66 + <td>{{adscripcion.idRolInstitucion.idInstitucion.idEjeParroquia.idParroquia.idMunicipio.idEstado}} </td>
  67 + <td>
  68 + <a href="{{ path('cea_solicitudes_show', { 'id': adscripcion.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye"> </i></a>
  69 + <a href="javascript:;" class="btn btn-xs btn-success"><i class="fa fa-check"> </i></a>
  70 + <a href="javascript:;" class="btn btn-danger btn-xs"><i class="fa fa-times"> </i></a></td>
  71 + </td>
  72 +
  73 + </tr>
  74 +
  75 + {% endif %}
47 {% endfor %} 76 {% endfor %}
48 77
49 </tbody> 78 </tbody>
app/Resources/views/usuarios/edit.html.twig
1 -{% extends 'base.html.twig' %} 1 +{% extends 'base_app.html.twig' %}
2 2
3 {% block body %} 3 {% block body %}
4 - <h1>Usuarios edit</h1> 4 + <div class="container">
  5 + {% form_theme edit_form 'bootstrap_3_horizontal_layout.html.twig' %}
  6 + <h1>Edición de Usuarios</h1>
5 7
6 {{ form_start(edit_form) }} 8 {{ form_start(edit_form) }}
7 {{ form_widget(edit_form) }} 9 {{ form_widget(edit_form) }}
@@ -18,4 +20,5 @@ @@ -18,4 +20,5 @@
18 {{ form_end(delete_form) }} 20 {{ form_end(delete_form) }}
19 </li> 21 </li>
20 </ul> 22 </ul>
  23 + </div>
21 {% endblock %} 24 {% endblock %}
app/Resources/views/usuarios/index.html.twig
1 -{% extends 'base.html.twig' %} 1 +{% extends 'base_app.html.twig' %}
2 2
3 {% block body %} 3 {% block body %}
4 - <h1>Usuarios list</h1>  
5 -  
6 - <table>  
7 - <thead>  
8 - <tr>  
9 - <th>Username</th>  
10 - <th>Password</th>  
11 - <th>Id</th>  
12 - <th>Actions</th>  
13 - </tr>  
14 - </thead>  
15 - <tbody> 4 + <div class="container">
  5 + <div class="widget widget-table action-table">
  6 + <div class="widget-header">
  7 + <div class="row">
  8 + <div class="col-sm-9"><i class="fa fa-list"></i>
  9 + <h3>Listado de usuarios Registrados</h3></div>
  10 + <div class="col-sm-2"><input type="text" class="form-control"></div>
  11 + </div>
  12 + </div>
  13 + <div class="widget-content">
  14 + <table class="table table-striped table-bordered table-condensed">
  15 + <thead>
  16 + <tr>
  17 + <th>Id</th>
  18 + <th>Nombres y Apellidos</th>
  19 + <th>Eje</th>
  20 + <th>Estado</th>
  21 + <th>Nombre de Usuario</th>
  22 + <th>Acciones</th>
  23 + </tr>
  24 + </thead>
  25 + <tbody>
16 {% for usuario in usuarios %} 26 {% for usuario in usuarios %}
17 <tr> 27 <tr>
18 - <td><a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}">{{ usuario.username }}</a></td>  
19 - <td>{{ usuario.password }}</td>  
20 <td>{{ usuario.id }}</td> 28 <td>{{ usuario.id }}</td>
  29 + <td>{{ usuario.idRolInstitucion.idRol.idPersona.primerNombre }}, {{ usuario.idRolInstitucion.idRol.idPersona.primerApellido }}</td>
  30 + <td>{{usuario.idRolInstitucion.idInstitucion.idEjeParroquia.idEje}}</td>
  31 + <td>{{usuario.idRolInstitucion.idInstitucion.idEjeParroquia.idParroquia.idMunicipio.idEstado}}</td>
21 <td> 32 <td>
22 - <ul>  
23 - <li>  
24 - <a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}">show</a>  
25 - </li>  
26 - <li>  
27 - <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}">edit</a>  
28 - </li>  
29 - </ul> 33 + <a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}">{{ usuario.username }}</a>
  34 + </td>
  35 + <td>
  36 + <a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}" class="btn btn-xs btn-info"><i class="fa fa-eye" ></i></a>
  37 + <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}" class="btn btn-xs btn-primary"><i class="fa fa-edit"></i></a>
30 </td> 38 </td>
31 </tr> 39 </tr>
32 {% endfor %} 40 {% endfor %}
@@ -38,4 +46,5 @@ @@ -38,4 +46,5 @@
38 <a href="{{ path('admin_usuarios_new') }}">Create a new entry</a> 46 <a href="{{ path('admin_usuarios_new') }}">Create a new entry</a>
39 </li> 47 </li>
40 </ul> 48 </ul>
  49 + </div>
41 {% endblock %} 50 {% endblock %}
app/Resources/views/usuarios/new.html.twig
1 -{% extends 'base.html.twig' %} 1 +{% extends 'base_app.html.twig' %}
2 2
3 {% block body %} 3 {% block body %}
4 - <h1>Usuarios creation</h1>  
5 - 4 + <div class="container">
  5 + <h1>Nuevo Usuario</h1>
  6 +{% form_theme form 'bootstrap_3_horizontal_layout.html.twig' %}
6 {{ form_start(form) }} 7 {{ form_start(form) }}
7 {{ form_widget(form) }} 8 {{ form_widget(form) }}
8 <input type="submit" value="Create" /> 9 <input type="submit" value="Create" />
@@ -13,4 +14,5 @@ @@ -13,4 +14,5 @@
13 <a href="{{ path('admin_usuarios_index') }}">Back to the list</a> 14 <a href="{{ path('admin_usuarios_index') }}">Back to the list</a>
14 </li> 15 </li>
15 </ul> 16 </ul>
  17 + </div>
16 {% endblock %} 18 {% endblock %}
app/Resources/views/usuarios/show.html.twig
1 -{% extends 'base.html.twig' %} 1 +{% extends 'base_app.html.twig' %}
2 2
3 {% block body %} 3 {% block body %}
4 - <h1>Usuarios</h1>  
5 -  
6 - <table>  
7 - <tbody> 4 + <div class="container">
  5 + <div class="widget widget-table action-table">
  6 + <div class="widget-header">
  7 + <div class="row">
  8 + <div class="col-sm-9"><i class="fa fa-list"></i>
  9 + <h3>Mostrando usuario</h3></div>
  10 + <div class="col-sm-2"><input type="text" class="form-control"></div>
  11 + </div>
  12 + </div>
  13 + <div class="widget-content">
  14 + <table class="table table-striped table-bordered table-condensed">
  15 + <thead></thead>
8 <tr> 16 <tr>
9 <th>Username</th> 17 <th>Username</th>
10 <td>{{ usuario.username }}</td> 18 <td>{{ usuario.username }}</td>
@@ -18,19 +26,18 @@ @@ -18,19 +26,18 @@
18 <td>{{ usuario.id }}</td> 26 <td>{{ usuario.id }}</td>
19 </tr> 27 </tr>
20 </tbody> 28 </tbody>
  29 + </table>
21 </table> 30 </table>
  31 +
  32 +
  33 + {{ form_start(delete_form) }}
  34 + <a href="{{ path('admin_usuarios_index') }}" class="btn btn-sm btn-warning">Regresar</a>
  35 + <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}" class="btn btn-sm btn-info">Modificar</a>
  36 + <input type="submit" value="Delete" class="btn btn-sm btn-danger">
  37 + {{ form_end(delete_form) }}
22 38
23 - <ul>  
24 - <li>  
25 - <a href="{{ path('admin_usuarios_index') }}">Back to the list</a>  
26 - </li>  
27 - <li>  
28 - <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}">Edit</a>  
29 - </li>  
30 - <li>  
31 - {{ form_start(delete_form) }}  
32 - <input type="submit" value="Delete">  
33 - {{ form_end(delete_form) }}  
34 - </li>  
35 - </ul> 39 +
  40 +
  41 +
  42 + </div>
36 {% endblock %} 43 {% endblock %}
app/config/security.yml
@@ -5,7 +5,7 @@ security: @@ -5,7 +5,7 @@ security:
5 AppBundle\Entity\Usuarios: 5 AppBundle\Entity\Usuarios:
6 algorithm: bcrypt 6 algorithm: bcrypt
7 role_hierarchy: 7 role_hierarchy:
8 - ROLE_COORDINADOR_NACIONAL: [ROLE_COORDINADOR] 8 + ROLE_COORDINADOR_NACIONAL: [ROLE_COORDINADOR_REGIONAL]
9 9
10 # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers 10 # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
11 providers: 11 providers:
src/AppBundle/Controller/AdscripcionController.php
@@ -217,7 +217,7 @@ class AdscripcionController extends Controller @@ -217,7 +217,7 @@ class AdscripcionController extends Controller
217 * 217 *
218 * @Route("/solicitudes/adscripcion/{estatus}", name="cea_adscripciones") 218 * @Route("/solicitudes/adscripcion/{estatus}", name="cea_adscripciones")
219 * @Method({"GET", "POST"}) 219 * @Method({"GET", "POST"})
220 - * @Security("has_role('ROLE_COORDINADOR')") 220 + * @Security("has_role('ROLE_COORDINADOR_REGIONAL')")
221 */ 221 */
222 public function verSolicitudesAdscripcionAction($estatus = 2, Request $request) 222 public function verSolicitudesAdscripcionAction($estatus = 2, Request $request)
223 { 223 {
@@ -274,7 +274,7 @@ class AdscripcionController extends Controller @@ -274,7 +274,7 @@ class AdscripcionController extends Controller
274 * 274 *
275 * @Route("/solicitudes/{id}", name="cea_solicitudes_show") 275 * @Route("/solicitudes/{id}", name="cea_solicitudes_show")
276 * @Method("GET") 276 * @Method("GET")
277 - * @Security("has_role('ROLE_COORDINADOR')") 277 + * @Security("has_role('ROLE_COORDINADOR_REGIONAL')")
278 */ 278 */
279 public function solicitudesAdscripcionShowAction(Adscripcion $adscripcion) 279 public function solicitudesAdscripcionShowAction(Adscripcion $adscripcion)
280 { 280 {
@@ -295,7 +295,7 @@ class AdscripcionController extends Controller @@ -295,7 +295,7 @@ class AdscripcionController extends Controller
295 * 295 *
296 * @Route("/solicitudes/actualizar/{id}/{estatus}", name="cea_solicitudes_actualizar") 296 * @Route("/solicitudes/actualizar/{id}/{estatus}", name="cea_solicitudes_actualizar")
297 * @Method({"GET", "POST"}) 297 * @Method({"GET", "POST"})
298 - * @Security("has_role('ROLE_COORDINADOR')") 298 + * @Security("has_role('ROLE_COORDINADOR_REGIONAL')")
299 */ 299 */
300 public function solicitudesAdscripcionEditAction(Adscripcion $adscripcion, $estatus) 300 public function solicitudesAdscripcionEditAction(Adscripcion $adscripcion, $estatus)
301 { 301 {
src/AppBundle/Controller/UsuariosController.php
@@ -12,7 +12,7 @@ use AppBundle\Form\UsuariosType; @@ -12,7 +12,7 @@ use AppBundle\Form\UsuariosType;
12 /** 12 /**
13 * Usuarios controller. 13 * Usuarios controller.
14 * 14 *
15 - * @Route("/admin/usuarios") 15 + * @Route("ceapp/admin/usuarios")
16 */ 16 */
17 class UsuariosController extends Controller 17 class UsuariosController extends Controller
18 { 18 {
@@ -42,9 +42,10 @@ class UsuariosController extends Controller @@ -42,9 +42,10 @@ class UsuariosController extends Controller
42 public function newAction(Request $request) 42 public function newAction(Request $request)
43 { 43 {
44 $usuario = new Usuarios(); 44 $usuario = new Usuarios();
45 - $form = $this->createForm('AppBundle\Form\UsuariosType', $usuario); 45 + $form = $this->createForm('AppBundle\Form\UsuarioNuevoType', $usuario);
46 $form->handleRequest($request); 46 $form->handleRequest($request);
47 - 47 + $pass = $usuario->getPlainPassword();
  48 + if(!$pass) $usuario->setPlainPassword ("0000");
48 if ($form->isSubmitted() && $form->isValid()) { 49 if ($form->isSubmitted() && $form->isValid()) {
49 $password = $this->get('security.password_encoder') 50 $password = $this->get('security.password_encoder')
50 ->encodePassword($usuario, $usuario->getPlainPassword()); 51 ->encodePassword($usuario, $usuario->getPlainPassword());
src/AppBundle/Entity/Usuarios.php
@@ -47,7 +47,7 @@ class Usuarios implements UserInterface, \Serializable @@ -47,7 +47,7 @@ class Usuarios implements UserInterface, \Serializable
47 protected $password; 47 protected $password;
48 48
49 /** 49 /**
50 - * @Assert\NotBlank() 50 + *
51 * @Assert\Length(max=4096) 51 * @Assert\Length(max=4096)
52 */ 52 */
53 private $plainPassword; 53 private $plainPassword;
src/AppBundle/Form/UsuarioNuevoType.php
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Form;
  4 +
  5 +use Symfony\Component\Form\AbstractType;
  6 +use Symfony\Component\Form\FormBuilderInterface;
  7 +use Symfony\Component\OptionsResolver\OptionsResolver;
  8 +use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  9 +use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10 +use Symfony\Component\Form\Extension\Core\Type\EmailType;
  11 +
  12 +use Symfony\Component\Validator\Constraints\Email;
  13 +use Symfony\Component\Validator\Constraints\NotBlank;
  14 +use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  15 +
  16 +class UsuarioNuevoType extends AbstractType
  17 +{
  18 + /**
  19 + * @param FormBuilderInterface $builder
  20 + * @param array $options
  21 + */
  22 + public function buildForm(FormBuilderInterface $builder, array $options)
  23 + {
  24 + $builder
  25 + ->add('username')
  26 + ->add('idRolInstitucion',EntityType::class, array(
  27 + 'class' => 'AppBundle:RolInstitucion',
  28 + 'choice_label' => 'getIdRol.getIdPersona',
  29 + ))
  30 + ->add('rol', EntityType::class, array(
  31 + 'class' => 'AppBundle:Role',
  32 + 'multiple' => TRUE,
  33 + 'expanded' => TRUE,
  34 + ))
  35 + ->add('email', EmailType::class, array(
  36 + 'attr' => array('placeholder' => 'Dirección de Correo...'),
  37 + 'constraints' => array(
  38 + new NotBlank(),
  39 + new Email()
  40 + )
  41 + ))
  42 + ->add('plainPassword', RepeatedType::class, array(
  43 + 'type' => PasswordType::class,
  44 + 'first_options' => array('label' => 'Password'),
  45 + 'second_options' => array('label' => 'Repeat Password'),
  46 + ))
  47 + ;
  48 + }
  49 +
  50 + /**
  51 + * @param OptionsResolver $resolver
  52 + */
  53 + public function configureOptions(OptionsResolver $resolver)
  54 + {
  55 + $resolver->setDefaults(array(
  56 + 'data_class' => 'AppBundle\Entity\Usuarios'
  57 + ));
  58 + }
  59 +}
src/AppBundle/Form/UsuariosType.php
@@ -7,6 +7,7 @@ use Symfony\Component\Form\FormBuilderInterface; @@ -7,6 +7,7 @@ use Symfony\Component\Form\FormBuilderInterface;
7 use Symfony\Component\OptionsResolver\OptionsResolver; 7 use Symfony\Component\OptionsResolver\OptionsResolver;
8 use Symfony\Component\Form\Extension\Core\Type\RepeatedType; 8 use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
9 use Symfony\Component\Form\Extension\Core\Type\PasswordType; 9 use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10 +use Symfony\Bridge\Doctrine\Form\Type\EntityType;
10 11
11 class UsuariosType extends AbstractType 12 class UsuariosType extends AbstractType
12 { 13 {
@@ -18,13 +19,20 @@ class UsuariosType extends AbstractType @@ -18,13 +19,20 @@ class UsuariosType extends AbstractType
18 { 19 {
19 $builder 20 $builder
20 ->add('username') 21 ->add('username')
21 - ->add('idRolInstitucion')  
22 - ->add('rol')  
23 - ->add('plainPassword', RepeatedType::class, array( 22 + /*->add('idRolInstitucion',EntityType::class, array(
  23 + 'class' => 'AppBundle:RolInstitucion',
  24 + 'choice_label' => 'getIdRol.getIdPersona',
  25 + ))*/
  26 + ->add('rol', EntityType::class, array(
  27 + 'class' => 'AppBundle:Role',
  28 + 'multiple' => TRUE,
  29 + 'expanded' => TRUE,
  30 + ))
  31 + /*->add('plainPassword', RepeatedType::class, array(
24 'type' => PasswordType::class, 32 'type' => PasswordType::class,
25 'first_options' => array('label' => 'Password'), 33 'first_options' => array('label' => 'Password'),
26 'second_options' => array('label' => 'Repeat Password'), 34 'second_options' => array('label' => 'Repeat Password'),
27 - )) 35 + ))*/
28 ; 36 ;
29 } 37 }
30 38