#8 Se agrega edicion de usuarios backend

parent 778c4531
...@@ -24,6 +24,7 @@ class AppKernel extends Kernel ...@@ -24,6 +24,7 @@ class AppKernel extends Kernel
new BackendBundle\BackendBundle(), new BackendBundle\BackendBundle(),
new CampaniaBundle\CampaniaBundle(), new CampaniaBundle\CampaniaBundle(),
new CampaniaFrontBundle\CampaniaFrontBundle(), new CampaniaFrontBundle\CampaniaFrontBundle(),
new BackendUsuarioBundle\BackendUsuarioBundle(),
new WsBundle\WsBundle(), new WsBundle\WsBundle(),
); );
......
...@@ -35,6 +35,27 @@ ...@@ -35,6 +35,27 @@
</ul> </ul>
</div> </div>
</li> </li>
<li class="menu-item menu-item-submenu" aria-haspopup="true" data-menu-toggle="hover">
<a href="javascript:;" class="menu-link menu-toggle"><i class="menu-icon flaticon-user"></i>
<span class="menu-text">Usuarios</span><i class="menu-arrow"></i>
</a>
<div class="menu-submenu "><i class="menu-arrow"></i>
<ul class="menu-subnav">
<li class="menu-item menu-item-parent" aria-haspopup="true" >
<span class="menu-link">
<span class="menu-text">Funciones Usuarios</span>
</span>
</li>
{%if is_granted('ROLE_ADMIN')%}
<li class="menu-item " aria-haspopup="true" >
<a href="{{path('backend_backendusuario_index')}}" class="menu-link {% if route == 'backend_backendusuario_index' %}active{% endif %}"><i class="menu-bullet menu-bullet-line"><span></span></i>
<span class="menu-text">Listado Usuarios</span></a>
</li>
{% endif %}
</ul>
</div>
</li>
</ul> </ul>
<!--end::Menu Nav--> <!--end::Menu Nav-->
</div> </div>
......
{% extends 'baseBackend.html.twig' %}
{% block content %}
<!--begin::Subheader-->
<div class="subheader py-2 py-lg-6 subheader-solid " id="kt_subheader">
<div class=" container-fluid d-flex align-items-center justify-content-between flex-wrap flex-sm-nowrap">
<!--begin::Info-->
<div class="d-flex align-items-center flex-wrap mr-1">
<!--begin::Page Heading-->
<div class="d-flex align-items-baseline flex-wrap mr-5">
<!--begin::Page Title-->
<h5 class="text-dark font-weight-bold my-1 mr-5">
Crear Campaña
</h5>
<!--end::Page Title-->
</div>
<!--end::Page Heading-->
</div>
<!--end::Info-->
</div>
</div>
<!--end::Subheader-->
<!--begin::Entry-->
<div class="d-flex flex-column-fluid">
<!--begin::Container-->
<div class="container">
{{ include('backend_usuario/includes/alert.messages.html.twig') }}
<form class="form-horizontal" action="{{path('backend_backendusuario_actualizar')}}" method="post">
<div class="card-body">
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
<input type="hidden" id="empId" name="empId" value="{{backendUsuario.getEmpresa().getEmpId()}}"/>
<input type="hidden" id="bus_id" name="bus_id" value="{{backendUsuario.busId}}" />
<div class="form-group row">
<div class="col-lg-12">
<label>Email</label>
<input class="form-control" id="backendUsuarioEmail" name="backendUsuarioEmail" type="email" value="{{backendUsuario.busEmail}}" disabled>
<span class="form-text text-muted">Correo relacionado al usuario en edición.</span>
</div>
</div>
<div class="form-group row">
<div class="col-lg-12">
<label>Nombres</label>
<input class="form-control focused" id="backendUsuarioNombres" name="backendUsuarioNombres" type="text" value="{{backendUsuario.busNombres}}">
<span class="form-text text-muted">Nombres relacionados al usuario</span>
</div>
</div>
<div class="form-group row">
<div class="col-lg-12">
<label>Rol</label>
{% for backendRole in backendRoles %}
<div class="radio">
<label>
<input type="radio" name="backendUsuarioRol" value="{{backendRole.broId}}" {% if rol.broId == backendRole.broId %} checked {% endif %}/>{{backendRole.broNombre}}
{% if backendRole.broId == 1 %}<span><strong>(Puede crear usuarios nuevos y accede a todo el sistema de la empresa seleccionada.)</strong></span>{% endif %}
</label>
</div>
{% endfor %}
<span class="form-text text-muted">Rol del usuario.</span>
</div>
</div>
<div class="form-group row">
<div class="col-lg-12">
<label>Estado</label>
<label class="radio-inline">
<input type="radio" name="backendUsuarioEstado" value="1" {% if backendUsuario.busEstado == 1 %} checked {% endif %} />
Activo
</label>
<label class="radio-inline">
<input type="radio" name="backendUsuarioEstado" value="0" {% if backendUsuario.busEstado == 0 %} checked {% endif %}/>
Inactivo
</label>
</div>
</div>
<div class="form-group row">
<div class="col-lg-12">
<label></label>
<button type="submit" class="btn btn-sm btn-primary">Modificar</button>
<a href="{{path('backend_backendusuario_index')}}"><button type="button" class="btn btn-sm btn-default">Cancelar</button></a>
</div>
</div>
</div>
</form>
</div>
<!--end::Container-->
</div>
<!--end::Entry-->
{%endblock%}
{% block javascripts %}
<script>
$(document).on('change', '#empresa', function () {
$("#empId").val($(this).val());
});
</script>
{%endblock%}
{% extends 'administrador/base.html.twig' %}
{% block body %}
<!-- begin breadcrumb -->
<ol class="breadcrumb pull-right">
<li><a href="{{path('backend_backendusuario_index')}}">Panel Usuarios</a></li>
<li class="active">Nuevo</li>
</ol>
<!-- end breadcrumb -->
<!-- begin page-header -->
<h1 class="page-header">Nuevo Usuario</h1>
<!-- end page-header -->
<!-- begin row -->
<div class="row">
<div class="panel-body">
<div class="row">
<!-- begin col-6 -->
<div class="col-md-6">
<!-- begin panel -->
<div class="panel panel-inverse" data-sortable-id="form-stuff-1">
<div class="panel-body">
{{ include('backend_usuario/includes/alert.messages.html.twig') }}
<form class="form-horizontal" action="{{path('backend_backendusuario_crear')}}" method="post">
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
<div class="form-group">
<label class="col-md-3 control-label">Email</label>
<div class="col-md-9">
<input class="form-control" id="backendUsuarioEmail" name="backendUsuarioEmail" type="email" placeholder="Email">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Nombre</label>
<div class="col-md-9">
<input class="form-control focused" id="backendUsuarioNombres" name="backendUsuarioNombres" type="text" placeholder="Nombre y/o Apellido">
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Rol</label>
<div class="col-md-9" id="backendUsuarioRoles" name="backendUsuarioRoles[]" class="form-control">
{% for backendRole in backendRoles %}
<div class="radio">
<label>
<input type="radio" name="backendUsuarioRol" value="{{backendRole.broId}}" />{{backendRole.broNombre}}
</label>
</div>
{% endfor %}
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">Empresa</label>
<div class="col-md-9">
<select id="empresa" name="empresa">
<option value="none" selected>--Seleccione una empresa--</option>
{%for empresa in empresas%}
<option value="{{empresa.getEmpId()}}">{{empresa.getEmpNombre()}}</option>
{% endfor %}
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"></label>
<div class="col-md-9">
<button type="submit" class="btn btn-sm btn-primary">Crear</button>
<a href="{{path('backend_backendusuario_index')}}"><button type="button" class="btn btn-sm btn-default">Volver</button></a>
</div>
</div>
</form>
</div>
</div>
<!-- end panel -->
</div>
<!-- end col-6 -->
</div>
</div>
</div>
<!-- end row -->
{% endblock %}
{#debug <span>Hello {{dump(app.session.flashbag.all)}}</span>#}
{% if app.session.flashbag.has('success') %}
<div class="alert alert-success">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('success') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('error') %}
<div class="alert alert-danger">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('error') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('info') %}
<div class="alert alert-info">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('info') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
{% if app.session.flashbag.has('warning') %}
<div class="alert alert-warning">
<span class="close" data-dismiss="alert">×</span>
{% for flashMessage in app.session.flashbag.get('warning') %}
{{ flashMessage }}<br>
{% endfor %}
</div>
{% endif %}
\ No newline at end of file
{%if usuario is defined%}
<b>Usuario : </b> {{usuario.getBusEmail()}}
<br>
<hr>
<b>Clave : </b>{{usuario.getBusSK()}}
{%endif%}
\ No newline at end of file
<div class="m-t-0 m-b-10">
<a href="{{path('backend_backendusuario_nuevo')}}"><button type="button" class="btn btn-danger"><i class="fa fa-plus fa fa-plus mg-rg5"></i> Nuevo Usuario</button></a>
</div>
<br>
<table id="data-table-usuario" class="table table-separate table-head-custom table-checkable" width="100%">
<thead>
<tr>
<th>Email</th>
<th>Nombre</th>
<th>Rol</th>
<th>Empresa</th>
<th>Estado</th>
<th>Última Edición</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
{% for backendUsuario in backendUsuarios %}
<tr class="odd gradeX">
<td><b>{{ backendUsuario.busEmail }}</b></td>
<td>{{ backendUsuario.busNombres }}</td>
<td>
{% for rol in backendUsuario.getObjetoRoles %}
<span id= "{{rol.broRol}}" >{{rol.broNombre}}</span>
{% endfor %}
</td>
<td>
<b>{{backendUsuario.getEmpresa().getEmpNombre()}}</b>
</td>
<td>
{{backendUsuario.getBusEstado()}}
</td>
<td class="center">{{ backendUsuario.updatedAt is empty ? "" : backendUsuario.updatedAt|date("d-m-Y H:i:s") }}</td>
<td>
{% if backendUsuario.estaValidado() == true %}
<a id="mostrarAccesos" class="btn btn-light btn-sm" title="Mostar Datos de Acceso" onclick="mostrarAccesos({{ backendUsuario.busId }})">
<i class="fa fa-eye fa-lg"></i>
</a>
<a class="btn btn-light btn-sm" title="Editar usuario" href="{{path('backend_backendusuario_editar',{ 'bus_id': backendUsuario.busId })}}">
<i class="fa fa-edit fa-lg"></i>
</a>
{% endif %}
<a class="btn btn-light btn-sm" title="Eliminar usuario" href="{{path('backend_backendusuario_eliminar',{ 'bus_id': backendUsuario.busId })}}" onclick="return confirm('¿Esta seguro de eliminar a este usuario?')" >
<i class="fa fa-trash fa-lg"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% extends 'baseBackend.html.twig' %}
{% block content %}
<!--begin::Subheader-->
<div class="subheader py-2 py-lg-6 subheader-solid " id="kt_subheader">
<div class=" container-fluid d-flex align-items-center justify-content-between flex-wrap flex-sm-nowrap">
<!--begin::Info-->
<div class="d-flex align-items-center flex-wrap mr-1">
<!--begin::Page Heading-->
<div class="d-flex align-items-baseline flex-wrap mr-5">
<!--begin::Page Title-->
<h5 class="text-dark font-weight-bold my-1 mr-5">
Listado Usuarios
</h5>
<!--end::Page Title-->
</div>
<!--end::Page Heading-->
</div>
<!--end::Info-->
</div>
</div>
<!--end::Subheader-->
<!--begin::Entry-->
<div class="d-flex flex-column-fluid">
<!--begin::Container-->
<div class="container">
{{ include('backend_usuario/includes/alert.messages.html.twig') }}
<div id="mensaje-tabla-usuarios" style="display:none" class="alert alert-info" role="alert"></div>
<!--begin::Card-->
<div class="card card-custom">
<div class="card-header flex-wrap py-5">
<div class="card-title">
<h3 class="card-label">
Usuarios
<span class="d-block text-muted pt-2 font-size-sm"></span>
</h3>
</div>
</div>
<div class="card-body">
<!--begin: Datatable-->
{% include 'backend_usuario/includes/tablaUsuarios.html.twig' %}
<!--end: Datatable-->
</div>
</div>
<!--end::Card-->
</div>
<!--end::Container-->
</div>
<!--end::Entry-->
<!-- #modal-dialog -->
<div class="modal fade" id="modal-acceso">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Datos de acceso</h4>
</div>
<div id="modal-acceso-contenido" class="modal-body" >
</div>
<div class="modal-footer">
<a href="javascript:;" class="btn btn-sm btn-white" data-dismiss="modal">Cerrar</a>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script src="{{asset('assets/moment/moment.js')}}"></script>
<script src="{{asset('assets/backend_assets/assets/plugins/custom/datatables/datatables.bundle.js')}}"></script>
<script src="{{asset('assets/backend_assets/gearlabs_assets/js/utils.js')}}" ></script>
<script>
$(document).ready(function () {
generateTable();
});
function generateTable() {
// begin first table
tablaContenidos = $('#data-table-usuario').DataTable({
responsive: true,
bDestroy: true,
pagingType: 'full_numbers',
columnDefs: [
{
targets: 4,
width: '75px',
render: function (data, type, full, meta) {
var status = {
1: {'title': 'ACTIVO', 'class': 'label-light-success'},
0: {'title': 'INACTIVO', 'class': ' label-light-warning'},
};
if (typeof status[data] === 'undefined') {
return data;
}
return '<span class="label label-lg font-weight-bold' + status[data].class + ' label-inline">' + status[data].title + '</span>';
},
},
],
"language": {
"lengthMenu": "Mostrando _MENU_ contenido por página.",
"zeroRecords": "No se encontró ningúna contenido.",
"info": 'Mostrando página _PAGE_ de _PAGES_.',
"infoEmpty": "No hay contenidos disponibles.",
"infoFiltered": "(filtrado desde _MAX_ contenidos totales.)",
"search": "Búsqueda Rápida",
}
});
}
function mostrarAccesos(busId) {
$.ajax({
type: "POST",
url: '{{path('backend_usuario_mostrar_acceso')}}',
data: {busId: busId},
success: function (respuesta) {
$('#modal-acceso-contenido').html(respuesta);
$('#modal-acceso').modal('show');
}
});
}
var handleDataTableResponsive = function () {
"use strict";
if ($('#data-table-usuario').length !== 0) {
$('#data-table-usuario').DataTable({
responsive: true,
pageLength: 8,
paging:{{ (backendUsuarios|length > 8)? 'true':'false' }} ,
bPaginate: true,
order: [[0, 'asc']],
"language": {
"lengthMenu": "Mostrando _MENU_ usuarios por página.",
"zeroRecords": "No se encontró ningúna usuario.",
"info": '{{ (backendUsuarios|length > 8)? 'Mostrando página _PAGE_ de _PAGES_.':'' }}',
"infoEmpty": "No hay usuarios disponibles.",
"infoFiltered": "(filtrado desde _MAX_ usuarios totales.)",
"search": "Búsqueda Rápida",
"paginate": {
"first": "Primera Página",
"last": "Última Página",
"next": "Siguiente",
"previous": "Anterior",
}
}
});
}
};
</script>
{% endblock %}
...@@ -5,6 +5,11 @@ campania: ...@@ -5,6 +5,11 @@ campania:
backend: backend:
resource: "@BackendBundle/Resources/config/routing.yml" resource: "@BackendBundle/Resources/config/routing.yml"
prefix: /backend prefix: /backend
backend_usuario:
resource: "@BackendUsuarioBundle/Resources/config/routing.yml"
prefix: /backend
ws: ws:
resource: "@WsBundle/Resources/config/routing.yml" resource: "@WsBundle/Resources/config/routing.yml"
......
...@@ -6,4 +6,72 @@ use AppBundle\Model\om\BaseBackendUsuarioQuery; ...@@ -6,4 +6,72 @@ use AppBundle\Model\om\BaseBackendUsuarioQuery;
class BackendUsuarioQuery extends BaseBackendUsuarioQuery class BackendUsuarioQuery extends BaseBackendUsuarioQuery
{ {
/**
* Verifica si exite backendUsuario en base a email
* @param String $email
* @param type $empId Id Empresa
* @return boolean
*/
public static function existeBackendUsuarioByEmail($email, $empId=null){
//$email = strtolower($email);
$query = BackendUsuarioQuery::create()
->filterByBusEmail($email)
->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE)
->setIgnoreCase(true);
if($empId)
$query->filterByEmpId($empId);
$count = $query->count();
if ($count >0 ) {
return true;
} else
return false;
}
/**
* Obtiene BackendUsuario en base a email
* @param String $email
* @param type $empId Id Empresa
* @return \AppBundle\Model\BackendUsuario
*/
public static function obtenerBackendUsuarioByEmail($email, $empId=null){
$query = BackendUsuarioQuery::create()
->filterByBusEmail($email)
->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE);
if($empId)
$query->filterByEmpId($empId);
return $query->findOne();
}
/**
*
* @param type $busId
* @param type $empId Id Empresa
* @return \AppBundle\Model\BackendUsuario
*/
public static function obtenerBackendUsuarioByBackendUsuarioId($busId, $empId=null){
$query = BackendUsuarioQuery::create()
->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE);
if($empId)
$query->filterByEmpId($empId);
return $query->findPk($busId);
}
public static function obtenerCantidadUsuarioByEmail($email){
return BackendUsuarioQuery::create()->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE)->filterByBusEmail($email)->count();
}
public static function obtenerCantidadUsuarioByEmailyBusId($email,$busId){
return BackendUsuarioQuery::create()->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE)->filterByBusEmail($email)->filterByBusId(array($bus_id), \Criteria::NOT_IN)->count();
}
} }
<?php
namespace BackendUsuarioBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class BackendUsuarioBundle extends Bundle
{
}
<?php
namespace BackendUsuarioBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Model\EmpresaQuery;
use AppBundle\Model\Empresa;
use AppBundle\Model\BackendRol;
USE AppBundle\Model\BackendRolQuery;
use AppBundle\Model\BackendUsuario;
use AppBundle\Model\BackendUsuarioQuery;
use AppBundle\Model\BackendusuarioBackendrol;
use AppBundle\Lib\Utiles;
use Symfony\Component\HttpFoundation\Request;
class BackendUsuarioController extends Controller {
const rolesEmpresaSuperAdminPermitidos = array(BackendRol::ROLE_ADMIN);
public function indexAction() {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController:indexAction', 'backendusuario/index');
$user = $this->getUser();
$backendUsuarios = BackendUsuarioQuery::create()
->filterByBusEliminado(BackendUsuario::ELIMINADO_FALSE)
->filterByEmpId($user->getEmpId(), \Criteria::EQUAL)
//->useBackendusuarioBackendrolQuery()
//->filterByBroId(self::rolesEmpresaSuperAdminPermitidos, \Criteria::IN)
//->endUse()
->orderByBusId()
->find();
return $this->render(
'backend_usuario/index.html.twig', array(
'backendUsuarios' => $backendUsuarios,
'usuario' => null
)
);
}
public function nuevoAction() {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController:nuevoAction[BusId:' . $this->getUser()->getBusId() . ']', 'backendusuario/index');
$log->debug('Entrando');
$securityContext = $this->container->get('security.authorization_checker');
if ($securityContext->isGranted('ROLE_ADMIN')) {
$empresas = EmpresaQuery::create()->filterByEmpEstado(Empresa::EMPRESA_ACTIVA)->filterByEmpEliminado(Empresa::EMPRESA_ELIMINADA_FALSE)->filterByEmpId(3, \Criteria::NOT_EQUAL)->find();
return $this->render('backend_usuario/crud/new/nuevo.html.twig', array(
'backendRoles' => $this->obtenerRoles(),'empresas' => $empresas
));
} else {
$log->err('Permiso denegado.Creacion de nuevo usuario backend');
throw $this->createAccessDeniedException('Permiso Denegado.Usted no puede acceder a este sitio.');
}
}
public function crearAction(Request $request) {
$log = Utiles::setLog('BackendUsuarioController\Controller\BackendUsuarioController:crearAction[BusId:' . $this->getUser()->getBusId() . ']', 'backendusuario/index');
$log->debug('Entrando');
$backendUsuario = $this->getUser();
$email = $request->get('backendUsuarioEmail');
$nombres = $request->get('backendUsuarioNombres');
$rol = $request->get('backendUsuarioRol');
$empId = $request->get('empresa');
$log->debug('email:' . $email . ' | nombres:' . $nombres . ' | rol:' . $rol);
$log->debug('validando parametros...');
if (!is_numeric($empId) || !filter_var($email, FILTER_VALIDATE_EMAIL) || $nombres == '' || !is_numeric($rol)) {
$log->err('parametros invalidos..');
$this->get('session')->getFlashBag()->add(
'error', 'Estimado usuario, sus datos son incorrectos'
);
return $this->redirectToRoute('backend_backendusuario_nuevo');
}
$log->debug('verificando email...');
$auxBackendUsuario = BackendUsuarioQuery::obtenerBackendUsuarioByEmail($email);
if ($auxBackendUsuario == true && $auxBackendUsuario->getEmpId() == $backendUsuario->getEmpId() ||
$auxBackendUsuario == true && $auxBackendUsuario->getEmpId() != $backendUsuario->getEmpId() && $backendUsuario->estaValidado()
) {
$this->get('session')->getFlashBag()->add(
'error', 'El email: "' . $email . '" ya se encuentra en uso... Utilice uno nuevo por favor.'
);
return $this->redirectToRoute('backend_backendusuario_nuevo');
}
$log->debug('verificando si rol esta permitido...');
if ($this->verificarRol($rol) == false) {
$this->get('session')->getFlashBag()->add(
'error', 'Intente nuevamente.'
);
return $this->redirectToRoute('backend_backendusuario_nuevo');
}
$log->debug('generando nuevo objeto...');
$newBackendUsuario = new BackendUsuario();
$newBackendUsuario->setBusEmail($email);
$newBackendUsuario->setBusNombres($nombres);
$newBackendUsuario->setBusEstado(BackendUsuario::ESTADO_ACTIVO);
$newBackendUsuario->setBusEliminado(BackendUsuario::ELIMINADO_FALSE);
$newBackendUsuario->setEmpId($empId);
$newBackendUsuario->save();
$passwordBackendUsuario = Utiles::generarPassword(10);
$encoder = $this->container->get('security.password_encoder');
$encoded = $encoder->encodePassword($newBackendUsuario, $passwordBackendUsuario);
$newBackendUsuario->setBusSK($passwordBackendUsuario);
$newBackendUsuario->setBusClave($encoded);
$newBackendUsuario->save();
$br = new BackendusuarioBackendrol();
$br->setBroId($rol);
$br->setBackendUsuario($newBackendUsuario);
$br->save();
$this->get('session')->getFlashBag()->add(
'success', 'Usuario creado exitosamente. : ' . $newBackendUsuario->getBusEmail()
);
return $this->redirectToRoute('backend_backendusuario_index');
}
public function editarAction(Request $request) {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController:editarAction[BusId:' . $this->getUser()->getBusId() . ']', 'backendusuario/index');
$log->debug('Entrando');
$empId = $request->get("empId", null);
$bus_id = $request->get('bus_id', null);
$log->debug('Entrando... bus_id:' . $bus_id);
$backendUsuarioEntrante = BackendUsuarioQuery::obtenerBackendUsuarioByBackendUsuarioId($bus_id);
$empresa = $backendUsuarioEntrante->getEmpresa();
if ($backendUsuarioEntrante == null) {
throw $this->createNotFoundException('Usuario no existe en base a bus_id:' . $bus_id);
}
if ($empresa->perteneceBackendUsuarioAEmpresa($backendUsuarioEntrante->getEmpId()) == false) {
$log->err('Backend Usuario invalido. BusId:' . $bus_id . ' NO PERTENECE A EMPRESA ACTUAL.');
throw $this->createNotFoundException('Usuario invalido. ');
}
if ($backendUsuarioEntrante->estaValidado() == false) {
return $this->redirectToRoute('backend_backendusuario_index');
}
$rol = $backendUsuarioEntrante->getObjetoRol();
$empresas = EmpresaQuery::create()->filterByEmpEstado(Empresa::EMPRESA_ACTIVA)->filterByEmpEliminado(Empresa::EMPRESA_ELIMINADA_FALSE)->filterByEmpId(3, \Criteria::NOT_EQUAL)->find();
$securityContext = $this->container->get('security.authorization_checker');
if ($securityContext->isGranted('ROLE_ADMIN')) {
return $this->render('backend_usuario/crud/edit/editar.html.twig', array(
'backendUsuario' => $backendUsuarioEntrante,
'backendRoles' => $this->obtenerRoles(),
'empresas' => $empresas,
'rol' => $rol,
'emp_id' => $empId
)
);
} else {
$log->err('Permiso denegado.Edicion de nuevo usuario');
throw $this->createAccessDeniedException('Permiso Denegado.Usted no puede acceder a este sitio.');
}
}
public function actualizarAction(Request $request) {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController::actualizarAction[BusId:' . $this->getUser()->getBusId() . ']', 'backendusuario/index');
$log->debug('Entrando.');
$empId = $request->get('empId');
$bus_id = $request->get('bus_id');
$nombres = $request->get('backendUsuarioNombres');
$rol = $request->get('backendUsuarioRol');
$estado = $request->get('backendUsuarioEstado');
$log->debug('empId:' . $empId . ' | bus_id:' . $bus_id . ' | nombres:' . $nombres . ' | estado:' . $estado . ' | rol:' . $rol);
if (!is_numeric($empId) || !is_numeric($bus_id) || $nombres == '' || !is_numeric($estado) || !is_numeric($rol)) {
$log->err('parametros invalidos..');
throw $this->createNotFoundException('parametros invalidos');
}
$backendUsuarioEntrante = BackendUsuarioQuery::obtenerBackendUsuarioByBackendUsuarioId($bus_id);
if ($backendUsuarioEntrante == null) {
throw $this->createNotFoundException('BackendUsuario no existe en base a bus_id:' . $bus_id);
}
if ($backendUsuarioEntrante->estaValidado() == false) {
return $this->redirectToRoute('backend_backendusuario_index');
}
$backendUsuarioEntrante->setEmpId($empId);
$backendUsuarioEntrante->setBusNombres($nombres);
$backendUsuarioEntrante->setBusEstado($estado);
$backendUsuarioEntrante->getBackendusuarioBackendrols()->delete();
$br = new BackendusuarioBackendrol();
$br->setBroId($rol);
$br->setBackendUsuario($backendUsuarioEntrante);
$br->save();
$this->get('session')->getFlashBag()->add(
'success', 'Usuario modificado exitosamente!'
);
return $this->redirectToRoute('backend_backendusuario_editar', array('emp_id' => $empId,'bus_id' => $backendUsuarioEntrante->getBusId()));
}
public function eliminarAction(Request $request) {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController::eliminarAction[BusId:' . $this->getUser()->getBusId() . ']', 'backendusuario/index');
$log->debug('Entrando.');
$bus_id = $request->get('bus_id');
$log->debug('bus_id:' . $bus_id);
if (!is_numeric($bus_id)) {
$log->err('parametros invalidos..');
throw $this->createNotFoundException('parametros invalidos');
} else {
$backendUsuarioEntrante = BackendUsuarioQuery::obtenerBackendUsuarioByBackendUsuarioId($bus_id);
if ($backendUsuarioEntrante == null) {
throw $this->createNotFoundException('BackendUsuario no existe en base a bus_id:' . $bus_id);
}
if ($backendUsuarioEntrante->estaValidado() == false) {
return $this->redirectToRoute('backend_backendusuario_index');
}
$log->debug('eliminando backedUsuario');
$backendUsuarioEntrante->setBusEliminado(BackendUsuario::ELIMINADO_TRUE);
$backendUsuarioEntrante->save();
$this->get('session')->getFlashBag()->add(
'success', 'Usuario eliminado exitosamente!'
);
return $this->redirectToRoute('backend_backendusuario_index');
}
}
public function mostrarAccesoAction(Request $request) {
$log = Utiles::setLog('BackendUsuarioBundle\Controller\BackendUsuarioController:mostrarAccesoAction', 'backendusuario/index');
$log->debug('entrando....');
$busId = $request->get("busId",null);
$log->debug('busId:'.$busId);
$backendUsuario = BackendUsuarioQuery::create()->findPk($busId);
return $this->render(
'backend_usuario/includes/mostrarAcceso.html.twig',
array(
'usuario' => $backendUsuario,
)
);
}
private function verificarRol($rolId) {
return in_array($rolId, self::rolesEmpresaSuperAdminPermitidos);
}
private function obtenerRoles() {
return BackendRolQuery::create()->filterByBroId(self::rolesEmpresaSuperAdminPermitidos, \Criteria::IN)->find();
}
}
<?php
namespace BackendUsuarioBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('BackendUsuarioBundle:Default:index.html.twig');
}
}
#USUARIOS BACKEND
backend_backendusuario_index:
path: /backendusuario/listado
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:index }
backend_backendusuario_nuevo:
path: /backendusuario/nuevo
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:nuevo }
backend_backendusuario_crear:
path: /backendusuario/crear
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:crear, _format: json }
methods: [POST]
backend_backendusuario_editar:
path: /backendusuario/editar/{bus_id}
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:editar }
requirements:
bus_id: \d+
backend_backendusuario_actualizar:
path: /backendusuario/actualizar
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:actualizar }
methods: [POST]
backend_backendusuario_eliminar:
path: /backendUsuario/eliminar/{bus_id}
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:eliminar }
requirements:
bus_id: \d+
backend_usuario_mostrar_acceso:
path: /backendUsuario/mostrar/datos/acceso
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:mostrarAcceso }
methods: [POST]
backend_backendusuario_reset:
path: /backendusuario/reset/{bus_id}
defaults: { _controller: BackendUsuarioBundle:BackendUsuario:reset }
requirements:
bus_id: \d+
services:
# backend_usuario.example:
# class: BackendUsuarioBundle\Example
# arguments: ["@service_id", "plain_value", "%parameter%"]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment