Commit 7e525a06b1fa213984de07f65a573920a15027bc
1 parent
5d8300b3ab
Exists in
master
creada la gestion de los usuarios y la permisologia de vista de los servicios a traves del ROL
Showing
13 changed files
with
239 additions
and
88 deletions
Show diff stats
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 |