protected void btnPermisosUsuarioUpdate_Click(object sender, EventArgs e) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); List <IFamPat> PerQuitar = new List <IFamPat>(); List <IFamPat> PerAgregar = new List <IFamPat>(); //Verificar que quede al menos un permiso asignado if (LisAuxAsig.Count == 0) { sb.Append(@"<script type='text/javascript'>"); //sb.Append("$('#currentdetail').modal('show');"); sb.Append("alert('Por favor revisar que el usuario posea al menos un permiso asignado');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ModifClickMsj1", sb.ToString(), false); } else { unEmpleado = (UsuarioEntidad)Session["Empleado"]; PerQuitar = LisAuxAsigBKP.Where(d => !LisAuxAsig.Any(a => a.NombreIFamPat == d.NombreIFamPat)).ToList(); PerAgregar = LisAuxAsig.Where(d => !LisAuxAsigBKP.Any(a => a.NombreIFamPat == d.NombreIFamPat)).ToList(); if (unManagerUsuario.UsuarioModificarPermisos(PerAgregar, PerQuitar, unEmpleado.NombreUsuario)) { LisAuxAsig = unManagerUsuario.UsuarioTraerPermisos(unEmpleado.NombreUsuario, unEmpleado.CUIT); LisAuxAsigBKP = LisAuxAsig.ToList(); TFI.SEGURIDAD.ServicioLog.CrearLog("Modificar Permisos Usuario", "Permisos modificados correctamente", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString()); treeAsignados.CollapseAll(); treeDisponibles.CollapseAll(); Current.Session["PermisosDisp"] = LisAuxDisp; Current.Session["PermisosAsig"] = LisAuxAsig; } } //unEmpleado.Permisos.Clear(); //unEmpleado.Permisos.Add(new Familia()); //unEmpleado.Permisos[0].IdIFamPat = ddlPermisosUsuarioUpdate.SelectedIndex + 1; //unManagerUsuarioFamilia.UsuarioUpdatePermisosFamilia(unEmpleado); //cargarDatosEmpleado(); }
protected void btnEliminarFamilia_Click(object sender, EventArgs e) { UsuarioCore ManagerUsuario = new UsuarioCore(); List <UsuarioEntidad> UsuariosComprometidos = new List <UsuarioEntidad>(); List <UsuarioEntidad> UsuariosConFamiliaAEliminar = new List <UsuarioEntidad>(); List <IFamPat> PerAgregar = new List <IFamPat>(); List <IFamPat> PerQuitar = new List <IFamPat>(); System.Text.StringBuilder sb = new System.Text.StringBuilder(); try { if (Int32.Parse(cboFamilia.SelectedValue) > 0) { if (cboFamilia.SelectedItem.Text == "Cliente" | cboFamilia.SelectedItem.Text == "Empleado" | cboFamilia.SelectedItem.Text == "Admin") { sb.Append(@"<script type='text/javascript'>"); //sb.Append("$('#currentdetail').modal('show');"); sb.Append("alert('No pueden eliminarse las familias por defecto Cliente, Empleado o Admin');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "EliminarDefecto", sb.ToString(), false); } else { UsuariosConFamiliaAEliminar = ManagerFamilia.FamiliaUsuariosAsociados(Int32.Parse(cboFamilia.SelectedValue)); UsuariosComprometidos = ManagerFamilia.FamiliaUsuariosComprometidos(Int32.Parse(cboFamilia.SelectedValue)); if (UsuariosComprometidos.Count > 0) { List <string> LisUs = new List <string>(); foreach (UsuarioEntidad unUs in UsuariosComprometidos) { LisUs.Add(unUs.NombreUsuario); } string UsuariosCompString = string.Join(Environment.NewLine, LisUs); // Agregar msj de que no se puede eliminar la Familia porque los usuarios "UsuariosCompString", la tienen asignada como único permiso sb.Append(@"<script type='text/javascript'>"); //sb.Append("$('#currentdetail').modal('show');"); sb.Append("alert('No se puede eliminar la familia porque los siguientes usuarios la poseen asignada como único permiso: "); sb.Append(UsuariosCompString + "');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "EliminarClickMsj2", sb.ToString(), false); } else { PerQuitar.Add(PermisosCbo.Where(X => X.IdIFamPat == Int32.Parse(cboFamilia.SelectedValue)).First()); //Modifico los permisos de los usuarios que no están comprometidos PerAgregar.Clear(); //Limpio para que no agregue permisos a los usuarios no comprometidos foreach (UsuarioEntidad unUs in UsuariosConFamiliaAEliminar.Where(x => !UsuariosComprometidos.Any(y => y.IdUsuario == x.IdUsuario)).ToList()) { ManagerUsuario.UsuarioModificarPermisos(PerAgregar, PerQuitar, unUs.NombreUsuario); } if (ManagerFamilia.FamiliaEliminar(Int32.Parse(cboFamilia.SelectedValue))) { //Resguardo el nombre de la familia eliminada para el log string FamiliaLog = cboFamilia.Text; PermisosTodos = ManagerFamilia.PermisosTraerTodos(); PermisosCbo = PermisosTodos.Where(X => X.CantHijos > 0).ToList(); txtName.Text = ""; Familia FamAux = new Familia(); FamAux.IdIFamPat = -1; FamAux.NombreIFamPat = ""; PermisosCbo.Insert(0, FamAux); cboFamilia.Items.Clear(); cboFamilia.DataSource = null; cboFamilia.DataSource = PermisosCbo; cboFamilia.DataTextField = "NombreIFamPat"; cboFamilia.DataValueField = "IdIFamPat"; cboFamilia.DataBind(); LisAuxDisp = PermisosTodos.ToList(); LisAuxAsig = new List <IFamPat>(); LisAuxAsigBKP = new List <IFamPat>(); ListarPermisos(PermisosTodos, treeTodos); ListarPermisos(LisAuxDisp, treeDisponibles); ListarPermisos(LisAuxAsig, treeAsignados); TFI.SEGURIDAD.ServicioLog.CrearLog("Eliminar Familia", "Familia " + FamiliaLog + " eliminada correctamente", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString()); treeAsignados.CollapseAll(); treeDisponibles.CollapseAll(); treeTodos.CollapseAll(); sb.Append(@"<script type='text/javascript'>"); //sb.Append("$('#currentdetail').modal('show');"); sb.Append("alert('Familia eliminada correctamente');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "EliminarOK", sb.ToString(), false); } } } } else { sb.Append(@"<script type='text/javascript'>"); //sb.Append("$('#currentdetail').modal('show');"); sb.Append("alert('Debe seleccionar una Familia para eliminarla');"); sb.Append(@"</script>"); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "EliminarSeleccionar", sb.ToString(), false); } } catch (Exception es) { ServicioLog.CrearLog(es, "GestionPermisos - Eliminar Familia", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString()); Response.Redirect("../../../Shared/Errores.aspx"); } }