diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs index 4e1f1c741..09192f4ee 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs @@ -135,6 +135,10 @@ namespace AYA.SlnSinort.WCF [OperationContract] CatalogosPostJSON VerificarUsuarioBD(CatalogosPostJSON model); + [OperationContract] + CatalogosPostJSON VerificarUsuarioBDExterno(CatalogosPostJSON model); + + [OperationContract] List ObtenerPermisos(CatalogosPostJSON model); #endregion diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs index 31024d919..1c9306b97 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs @@ -79,6 +79,11 @@ namespace AYA.SlnSinort.WCF #region Usuario [OperationContract] List ObtenerUsuario(); + + [OperationContract] + List ObtenerUsuarioExterno(); + + #endregion #region UsuarioExterno diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs index 5ddb21613..624e3bff0 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs @@ -1338,6 +1338,53 @@ namespace AYA.SlnSinort.WCF return model; } + public CatalogosPostJSON VerificarUsuarioBDExterno(CatalogosPostJSON model) + { + + UsuarioExternoDAL usuario = new UsuarioExternoDAL(); + PermisosUsuarioDAL pantallas = new PermisosUsuarioDAL(); + Encriptar encriptar = new Encriptar(); + try + { + model.UsuarioExterno = usuario.BuscarUsuario(model); + if (model.UsuarioExterno != null) + { + if (encriptar.desencriptaConstrasena(model.UsuarioExterno.Password) == model.filtro) + { + model.pantallas = pantallas.ObtenerPermisos(model); + if (model.pantallas != null && model.pantallas.Count > 0) + { + model.DescripcionRespuesta = "Bienvenido."; + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + } + else + { + model.DescripcionRespuesta = "Para iniciar sesión debe tener un rol asignado."; + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + } + } + else + { + model.DescripcionRespuesta = "El usuario o la contraseña son incorrectos."; + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + } + + + } + else + { + model.DescripcionRespuesta = "El usuario no está registrado."; + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + } + } + catch (Exception ex) + { + + log.Error(ex); + } + return model; + } + public List ObtenerPermisos(CatalogosPostJSON model) { List respuesta = null; diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs index 72579914c..a2b4ec6bd 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs @@ -291,6 +291,20 @@ namespace AYA.SlnSinort.WCF } return respuesta; } + public List ObtenerUsuarioExterno() + { + List respuesta = null; + try + { + respuesta = new UsuarioDAL().ObtenerUsuarioExterno(); + + } + catch (Exception ex) + { + log.Error(ex); + } + return respuesta; + } #endregion #region UsuarioExterno @@ -350,7 +364,9 @@ namespace AYA.SlnSinort.WCF } if (respuesta2 == null) { + model = new UsuarioDAL().InsertarUsuarioExterno(model); model = new UsuarioExternoDAL().InsertarUsuarioExterno(model); + }else { model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA.ToString(); @@ -547,7 +563,7 @@ namespace AYA.SlnSinort.WCF usuarios_base = new UsuarioDAL().ObtenerUsuario(); var lista_base = usuarios_base.Select(p => p.UsuarioSistema).ToList(); ds = respuestaAyA.obtenerUsuariosActiveDirectory(); - usuarios_aya = ds.Tables[0].AsEnumerable().Select(dataRow => new Usuario { UsuarioSistema = dataRow.Field("Login"), NombreUsuario = dataRow.Field("Nombre"), EmailUsuario = dataRow.Field("Login") + dominio, Estado = true, FechaCreacion = System.DateTime.Now }).ToList(); + usuarios_aya = ds.Tables[0].AsEnumerable().Select(dataRow => new Usuario { UsuarioSistema = dataRow.Field("Login"), NombreUsuario = dataRow.Field("Nombre"), EmailUsuario = dataRow.Field("Login") + dominio,Externo = false, Estado = true, FechaCreacion = System.DateTime.Now }).ToList(); var lista_aya = usuarios_aya.Select(p => p.UsuarioSistema).ToList(); var compara = lista_aya.Except(lista_base).ToList(); foreach (var lista in compara) diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/LoginExterno.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/LoginExterno.js index 4033fab57..31651a0eb 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/LoginExterno.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/LoginExterno.js @@ -59,7 +59,7 @@ function validarFormulario() { if (Contador >= 2) { enviado = true; - ObtenerUsuarioAD(); + VerificarUsurarioBD(); } else { toastr.warning('Los campos son obligatorio', Message_Warning); @@ -73,19 +73,7 @@ $('#txtUsuarioUnico').change(function () { $('#txtUsuarioUnico').val(txtUsuarioUnico.trim()); }); -this.ObtenerUsuarioAD = function () { - - var uri = SinorLoginWCF + '/api/ObtenerUsuarioAD'; - model = { - Usuario: $('#txtUsuarioUnico').val(), - Contrasena: $('#txtContrasena').val() - } - - AjaxPostData(uri, model, false, true, VerificarUsurarioBD, null, null); - - -} function recuperarContrasena() { model = { @@ -112,23 +100,24 @@ this.EnviarCorreoContrasena = function (data) { ENDREQUEST(); } } -this.VerificarUsurarioBD = function (data) { - if (data.CodigoRespuesta == 'EXITOSO') { +this.VerificarUsurarioBD = function () { + - var uri = SinorLoginWCF + '/api/VerificarUsuarioBD'; + var uri = SinorLoginWCF + '/api/VerificarUsuarioBDExterno'; model = { - codigo: data.LoginUsuario + codigo: $('#txtUsuarioUnico').val(), + filtro: $('#txtContrasena').val() } - AjaxPostData(uri, model, false, false, IniciarSesion, null, null); + AjaxPostData(uri, model, false, true, IniciarSesion, null, null); - } + } this.IniciarSesion = function (data) { - if (data.usuario.UsuarioSistema != null) { + if (data.UsuarioExterno.Usuario != null) { var ArrayPermisos = []; var lista = data.pantallas; @@ -139,8 +128,8 @@ this.IniciarSesion = function (data) { var uri = server + 'Login/InicioSesion'; model = { - UserName: data.usuario.UsuarioSistema, - UserFullName: data.usuario.NombreUsuario, + UserName: data.UsuarioExterno.Usuario, + UserFullName: data.UsuarioExterno.Nombre + " " + data.UsuarioExterno.Apellido1 + " " + data.UsuarioExterno.Apellido2, PermisosUsuario: ArrayPermisos }; localStorage['ListaOpciones'] = ArrayPermisos; diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/PropuestaNormativa.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/PropuestaNormativa.js index e90efd87e..2f625b6b3 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/PropuestaNormativa.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/PropuestaNormativa.js @@ -17,6 +17,7 @@ this.getDataModel = function () { CargarEmisor(); CargarAplicacion(); CargarUsuarios(); + CargarUsuariosSistemaExterno(); $("#btnBuscarUsuario").unbind("click"); $("#btnBuscarUsuario").click(function () { @@ -28,6 +29,16 @@ this.getDataModel = function () { AgregarUsuario(); }); + $("#btnBuscarUsuarioExterno").unbind("click"); + $("#btnBuscarUsuarioExterno").click(function () { + BuscarUsuarioExterno(); + }); + + $("#btnAgregarUsuarioExterno").unbind("click"); + $("#btnAgregarUsuarioExterno").click(function () { + AgregarUsuarioExterno(); + }); + $("#btnBuscarEmisor").unbind("click"); $("#btnBuscarEmisor").click(function () { @@ -186,6 +197,36 @@ this.CargarGridUsuarios = function (data) { ENDREQUEST(); } +this.CargarUsuariosSistemaExterno = function (filtro) { + + var uri = CatalogosWCF + '/api/ObtenerUsuarioExterno'; + AjaxPostData(uri, null, false, false, CargarGridUsuariosExternos, null, null); + +} + +this.CargarGridUsuariosExternos = function (data) { + + if (data != null) { + + var Seleccionar = $("#ucBtnSeleccionarCatalogo").html(); + var columnDefinition = [ + { "data": "UsuarioSistema", className: "center" }, + { "data": "NombreUsuario", className: "center" }, + { "data": null, className: "center", defaultContent: Seleccionar } + ]; + + $('#tableUsuariosExterno').TableInit(0, false, true, true, false, columnDefinition, data, false); + } + + else { + + toastr.error("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde", Message_Error); + } + + ENDREQUEST(); +} + + this.BuscarUsuario = function () { SelectedCatalog = 'Usuarios'; @@ -201,6 +242,11 @@ this.BuscarUsuario = function () { this.AgregarUsuario = function () { + if ($("#txtUsuario").val() == '') { + toastr.warning("Debe seleccionar un usuario", Message_Warning); + return; + } + if (!confirm("¿Desea convocar a un nuevo participante?")) return; var tableParticipantes = $('#tableParticipantes').DataTable(); @@ -223,6 +269,61 @@ this.LimpiarUsuario = function () { $('#txtUsuario').val(''); } +this.BuscarUsuarioExterno = function () { + SelectedCatalog = 'UsuariosExterno'; + + if ($.fn.DataTable.isDataTable('#tableUsuariosExterno')) { + + LoadMessage(); + $('#tableUsuariosExterno').DataTable().search('').draw(); + $('#modalUsuarioExterno').modal('show'); + ENDREQUEST(); + + } +} + +this.AgregarUsuarioExterno = function () { + + if ($("#txtUsuarioExterno").val() == '') { + toastr.warning("Debe seleccionar un usuario", Message_Warning); + return; + } + + if (!confirm("¿Desea convocar a un nuevo participante?")) return; + + var tableParticipantes = $('#tableParticipantes').DataTable(); + var option = $("#ucbtnRemoverParticipante").html(); + var a = $("#hiddenusuarioExterno").val(); + + tableParticipantes.row.add( + [$("#hiddenusuarioExterno").val(), + $("#txtUsuarioExterno").val(), + option]) + .draw(); + + toastr.success(Message_Default, Message_Success); + $('#hiddenusuarioExterno').val(''); + $('#txtUsuarioExterno').val(''); +} + +this.LimpiarUsuarioExterno = function () { + $('#hiddenusuarioExterno').val(''); + $('#txtUsuarioExterno').val(''); +} + +$('#tableUsuariosExterno').on('click', 'button', function () { + + var data = $('#tableUsuariosExterno').DataTable().row($(this).parents('tr')).data(); + + if (SelectedCatalog == "UsuariosExterno") { + + $('#hiddenUsuarioExterno').val(data.UsuarioSistema); + $('#txtUsuarioExterno').val(data.NombreUsuario); + } + $('#modalUsuarioExterno').modal('hide'); + +}); + //TABLES $('#tableAplicacion').on('click', 'button', function () { diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js index c29366c7e..143e407ae 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js @@ -48,6 +48,16 @@ this.getDataModel = function () { ValidarRolesUsuario(); }); + $("#btnBuscarUsuarioExterno").unbind("click"); + $("#btnBuscarUsuarioExterno").click(function () { + BuscarUsuarioExterno(); + }); + + $("#btnAgregarUsuarioExterno").unbind("click"); + $("#btnAgregarUsuarioExterno").click(function () { + ValidarRolesUsuarioExterno(); + }); + $("#btnBuscarOpcion").unbind("click"); $("#btnBuscarOpcion").click(function () { BuscarPantalla(); @@ -64,6 +74,7 @@ this.getDataModel = function () { $('#GridRolesUsuarios').TableInit(0, false, true, true, false, null, null); ObtenerRoles(); CargarUsuariosSistema(); + CargarUsuariosSistemaExterno(); @@ -799,6 +810,38 @@ this.CargarGridUsuarios = function (data) { ENDREQUEST(); } +this.CargarUsuariosSistemaExterno = function (filtro) { + + var uri = CatalogosWCF + '/api/ObtenerUsuarioExterno'; + AjaxPostData(uri, null, false, false, CargarGridUsuariosExternos, null, null); + +} + +this.CargarGridUsuariosExternos = function (data) { + + if (data != null) { + + var Seleccionar = $("#ucBtnSeleccionarCatalogo").html(); + var columnDefinition = [ + { "data": "UsuarioSistema", className: "center" }, + { "data": "NombreUsuario", className: "center" }, + { "data": null, className: "center", defaultContent: Seleccionar } + ]; + + $('#tableUsuariosExterno').TableInit(0, false, true, true, false, columnDefinition, data, false); + } + + else { + + toastr.error("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde", Message_Error); + } + + ENDREQUEST(); +} + + + + this.BuscarUsuario = function () { SelectedCatalog = 'Usuarios'; @@ -815,6 +858,22 @@ this.BuscarUsuario = function () { } } +this.BuscarUsuarioExterno = function () { + SelectedCatalog = 'UsuariosExterno'; + + + if ($.fn.DataTable.isDataTable('#tableUsuarios')) { + + LoadMessage(); + var table = $('#tableUsuariosExterno').DataTable(); + + $('#tableUsuariosExterno').DataTable().search('').draw(); + $('#modalUsuarioExterno').modal('show'); + ENDREQUEST(); + + } +} + this.ValidarRolesUsuario = function (id) { if ($("#txtUsuario").val() == '') { @@ -831,6 +890,21 @@ this.ValidarRolesUsuario = function (id) { } +this.ValidarRolesUsuarioExterno = function (id) { + + if ($("#txtUsuarioExterno").val() == '') { + toastr.warning("Debe seleccionar un usuario", Message_Warning); + return; + } + + var uri = CatalogosWCF + '/api/ValidarRolesUsuario'; + model = { + codigo: $("#hiddenUsuarioExterno").val() + }; + + AjaxPostData(uri, model, false, false, AgregarUsuarioExterno, null, null); + +} this.AgregarUsuario = function (data) { ENDREQUEST(); @@ -859,6 +933,35 @@ this.AgregarUsuario = function (data) { $('#hiddenUsuario').val(''); $('#txtUsuario').val(''); } + +this.AgregarUsuarioExterno = function (data) { + ENDREQUEST(); + if (!confirm("¿Desea agregar un nuevo usuario?")) return; + + if (data.length > 0) { + toastr.warning("El usuario seleccionado ya tiene un rol asignado", Message_Warning); + return; + } + + var GridRolesUsuarios = $('#GridRolesUsuarios').DataTable(); + var option = $("#ucbtnRemoverParticipante").html(); + var stateIcon = $("#ucItemsIcon").html(); + stateIcon = replaceAll("[$icon]", "fa-check-circle", stateIcon); + stateIcon = replaceAll("[$state_color]", "muted", stateIcon); + + GridRolesUsuarios.row.add( + [stateIcon, + 0, + $("#hiddenUsuarioExterno").val(), + $("#txtUsuarioExterno").val(), + option]) + .draw(); + + toastr.success(Message_Default, Message_Success); + $('#hiddenUsuarioExterno').val(''); + $('#txtUsuarioExterno').val(''); +} + $('#tableUsuarios').on('click', 'button', function () { var data = $('#tableUsuarios').DataTable().row($(this).parents('tr')).data(); @@ -871,10 +974,28 @@ $('#tableUsuarios').on('click', 'button', function () { $('#modalUsuario').modal('hide'); }); + +$('#tableUsuariosExterno').on('click', 'button', function () { + + var data = $('#tableUsuariosExterno').DataTable().row($(this).parents('tr')).data(); + + if (SelectedCatalog == "UsuariosExterno") { + + $('#hiddenUsuarioExterno').val(data.UsuarioSistema); + $('#txtUsuarioExterno').val(data.NombreUsuario); + } + $('#modalUsuarioExterno').modal('hide'); + +}); + this.LimpiarUsuario = function () { $('#hiddenUsuario').val(''); $('#txtUsuario').val(''); } +this.LimpiarUsuarioExterno = function () { + $('#hiddenUsuarioExterno').val(''); + $('#txtUsuarioExterno').val(''); +} $('#GridRolesUsuarios').on('click', 'button', function () { var data = $('#GridRolesUsuarios').DataTable().row($(this).parents('tr')).data(); diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Signup.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Signup.js index b17596596..85efc02c5 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Signup.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Signup.js @@ -119,6 +119,7 @@ var normalize = (function () { })(); this.BuscarUsuario = function (model) { + LoadMessage(); model.UsuarioExterno = { Usuario: usuario, @@ -129,6 +130,13 @@ this.BuscarUsuario = function (model) { Email: $('#txtEmail').val() } + model.usuario = { + + UsuarioSistema: usuario, + NombreUsuario: $('#txtNombre').val() + " " + $('#txtApellido1').val() + " " + $('#txtApellido2').val() , + EmailUsuario: $('#txtEmail').val() + } + var uri = SinorSignupWCF + '/api/VerificarUsuario'; AjaxPostData(uri, model, false, true, EnviarCorreo, null, null); diff --git a/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml b/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml index 2593590ff..deec375b2 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml +++ b/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml @@ -249,6 +249,24 @@ +
+ +
+ + + + + + + + +

@@ -330,6 +348,36 @@ +@*---------------------UsuariosExterno---------------------------------------------------------*@ +

- - +
@@ -255,6 +254,25 @@
+ +
+ +
+ + + + + + + + +

@@ -323,6 +341,37 @@ +@*---------------------UsuariosExterno---------------------------------------------------------*@ + + @*---------------------Adjuntos---------------------------------------------------------*@