/// <summary> /// Método que permite insertar /// un nuevo registro en la tabla permiso /// </summary> /// <param name="poPermiso">Permiso a insertar</param> /// <returns>Int valor del resultado de la ejecución de la sentencia</returns> public static int insertPermiso(cls_permiso poPermiso) { int vi_resultado; try { String vs_comando = "PA_admi_permisoInsert"; cls_parameter[] vu_parametros = { new cls_parameter("@paramnombre", poPermiso.pNombre) }; cls_sqlDatabase.beginTransaction(); vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros); poPermiso.pPK_permiso = Convert.ToInt32(cls_gestorUtil.selectMax(cls_constantes.PERMISO, "PK_permiso")); cls_interface.insertarTransacccionBitacora(cls_constantes.INSERTAR, cls_constantes.PERMISO, poPermiso.pPK_permiso.ToString()); cls_sqlDatabase.commitTransaction(); return vi_resultado; } catch (Exception po_exception) { cls_sqlDatabase.rollbackTransaction(); throw new Exception("Ocurrió un error al insertar el permiso.", po_exception); } }
/// <summary> /// Método que permite eliminar /// un registro en la tabla permiso /// </summary> /// <param name="poPermiso">Permiso a eliminar</param> /// <returns>Int valor del resultado de la ejecución de la sentencia</returns> public static int deletePermiso(cls_permiso poPermiso) { int vi_resultado; try { String vs_comando = "PA_admi_permisoDelete"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPK_permiso", poPermiso.pPK_permiso) }; cls_sqlDatabase.beginTransaction(); vi_resultado = cls_sqlDatabase.executeNonQuery(vs_comando, true, vu_parametros); cls_interface.insertarTransacccionBitacora(cls_constantes.ELIMINAR, cls_constantes.PERMISO, poPermiso.pPK_permiso.ToString()); cls_sqlDatabase.commitTransaction(); return vi_resultado; } catch (Exception po_exception) { cls_sqlDatabase.rollbackTransaction(); throw new Exception("Ocurrió un error al eliminar el permiso.", po_exception); } }
/// <summary> /// Obtiene los permisos /// asociados a una página /// esto para determinar si /// el usuario posee privilegios /// para realizar las diferentes opciones /// en el sistema. /// </summary> /// <param name="psUrl">String url de la página.</param> /// <param name="piRol">Int código del rol.</param> /// <returns>cls_pagina con los datos necesarios para el manejo de los permisos asociados.</returns> public static cls_pagina obtenerPermisoPaginaRol(string psUrl, int piRol) { List<cls_permiso> loPermisos = null; cls_permiso loPermiso = null; cls_pagina loPagina = null; try { String vs_comando = "PA_admi_selectPaginaRolPermisos"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPagina", psUrl) , new cls_parameter("@paramRol", piRol) , }; DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros); loPermisos = new List<cls_permiso>(); for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++) { loPermiso = new cls_permiso(); loPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_permiso"]); loPermiso.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString(); loPermisos.Add(loPermiso); } loPagina = new cls_pagina(); loPagina.pUrl = psUrl; loPagina.Permisos = loPermisos; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener los permisos de una página.", po_exception); } return loPagina; }
/// <summary> /// Método que se encarga /// de marcar los permisos /// asociados en la página. /// </summary> /// <param name="po_permiso"></param> private void marcarNodo(cls_permiso po_permiso) { foreach (TreeNode vo_node in this.trv_permisos.Nodes[0].ChildNodes) { if(vo_node.Value.Equals(po_permiso.pPK_permiso.ToString())) { vo_node.Checked = true; break; } } }
/// <summary> /// Crea un objeto de tipo /// cls_pagina con la informacón /// que se encuentra en el formulario /// web /// </summary> /// <returns>cls_pagina</returns> private cls_pagina crearObjeto() { cls_pagina vo_pagina = new cls_pagina(); if (cls_variablesSistema.tipoEstado != cls_constantes.AGREGAR) { vo_pagina = (cls_pagina)cls_variablesSistema.obj; } try { vo_pagina.pNombre = txt_nombre.Text; vo_pagina.pUrl = txt_url.Text; vo_pagina.FK_menu = this.ddl_menu.SelectedIndex; vo_pagina.pHeight = this.txt_largo.Text; vo_pagina.Permisos = new List<cls_permiso>(); cls_permiso vo_permiso = null; foreach (TreeNode vo_nodo in this.trv_permisos.CheckedNodes) { vo_permiso = new cls_permiso(); vo_permiso.pPK_permiso = Convert.ToInt32(vo_nodo.Value); vo_permiso.pNombre = vo_nodo.Text; vo_pagina.Permisos.Add(vo_permiso); } return vo_pagina; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al crear el objeto para guardar el registro.", po_exception); } }
/// <summary> /// Constructor de clase cls_paginaPermiso /// </summary> public cls_paginaPermiso() { this.permiso = new cls_permiso(); this.pagina = new cls_pagina(); }
/// <summary> /// Método que permite /// obtener las asociación que exite /// entre las páginas y los permisos. /// </summary> /// <param name="poPagina">cls_permiso</param> /// <returns>List</returns> public static List<cls_permiso> listarPaginaPermiso(cls_pagina poPagina) { List<cls_permiso> vo_lista = null; cls_permiso voPermiso = null; try { String vs_comando = "PA_admi_paginaPermisoSelect"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPagina", poPagina.pPK_pagina) }; DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros); vo_lista = new List<cls_permiso>(); for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++) { voPermiso = new cls_permiso(); voPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_permiso"]); vo_lista.Add(voPermiso); } return vo_lista; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener el listado de los páginas de manera filtrada.", po_exception); } }
/// <summary> /// Método que permite seleccionar /// un único registro en la tabla rol /// </summary> /// <returns>poRol valor del resultado de la ejecución de la sentencia</returns> public static cls_rol seleccionarRol(cls_rol poRol) { DataTable vo_permisos = null; cls_pagina vo_pagina = null; cls_permiso vo_permiso = null; try { String vs_comando = "PA_admi_rolSelectOne"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPK_rol", poRol.pPK_rol) }; DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros); poRol = new cls_rol(); poRol.pPK_rol = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["PK_rol"]); poRol.pDescripcion = vu_dataSet.Tables[0].Rows[0]["descripcion"].ToString(); poRol.pNombre = vu_dataSet.Tables[0].Rows[0]["nombre"].ToString(); poRol.pVisible = Convert.ToBoolean(vu_dataSet.Tables[0].Rows[0]["visible"]); //Se cargan los permisos de un rol. vo_permisos = cls_gestorRolPaginaPermiso.listarPermisosUsuario(poRol); if (vo_permisos != null && vo_permisos.Rows.Count > 0) { //Se seleccionan los las diferentes páginas var paginas = (from pagina in vo_permisos.AsEnumerable() select new { PAGINA = pagina.Field<Int32>("PK_pagina") }).Distinct(); foreach (var pagina in paginas) { // Se crea la pagina vo_pagina = new cls_pagina(); vo_pagina.pPK_pagina = pagina.PAGINA; //Se obtienen los permisos var permisos = from permiso in vo_permisos.AsEnumerable() where permiso.Field<Int32>("PK_pagina") == pagina.PAGINA select new { PERMISO = permiso.Field<Int32>("PK_permiso") }; foreach(var permiso in permisos) { vo_permiso = new cls_permiso(); vo_permiso.pPK_permiso = permiso.PERMISO; vo_pagina.Permisos.Add(vo_permiso); } poRol.Paginas.Add(vo_pagina); } } return poRol; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener el rol especificado.", po_exception); } }
/// <summary> /// Método que elimina un permiso /// </summary> /// <param name="po_permiso">Permiso a eliminar</param> private void eliminarDatos(cls_permiso po_permiso) { try { cls_gestorPermiso.deletePermiso(po_permiso); this.llenarGridView(); this.upd_Principal.Update(); } catch (Exception po_exception) { throw new Exception("Ocurrió un error eliminando el permiso. Es posible que exista un registro asociado a este permiso.", po_exception); } }
/// <summary> /// Crea un objeto de tipo /// cls_permiso con la informacón /// que se encuentra en el formalario /// web /// </summary> /// <returns>cls_permiso</returns> private cls_permiso crearObjeto() { cls_permiso vo_permiso = new cls_permiso(); if (cls_variablesSistema.tipoEstado != cls_constantes.AGREGAR) { vo_permiso = (cls_permiso)cls_variablesSistema.obj; } try { vo_permiso.pNombre = txt_nombre.Text; return vo_permiso; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al crear el objeto para guardar el registro.", po_exception); } }
/// <summary> /// Cuando se seleccionada un botón del grid. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void grd_listaPermisos_RowCommand(object sender, GridViewCommandEventArgs e) { try { int vi_indice = Convert.ToInt32(e.CommandArgument); GridViewRow vu_fila = this.grd_listaPermisos.Rows[vi_indice]; cls_permiso vo_permiso = new cls_permiso(); vo_permiso.pPK_permiso = Convert.ToInt32(vu_fila.Cells[0].Text.ToString()); switch (e.CommandName.ToString()) { case cls_constantes.VER: vo_permiso = cls_gestorPermiso.seleccionarPermiso(vo_permiso); cls_variablesSistema.obj = vo_permiso; cls_variablesSistema.tipoEstado = e.CommandName; this.cargarObjeto(); this.ard_principal.SelectedIndex = 1; break; case cls_constantes.EDITAR: vo_permiso = cls_gestorPermiso.seleccionarPermiso(vo_permiso); cls_variablesSistema.obj = vo_permiso; cls_variablesSistema.tipoEstado = e.CommandName; this.cargarObjeto(); this.ard_principal.SelectedIndex = 1; break; case cls_constantes.ELIMINAR: if (!cls_interface.verificarRegistrosPermanentes(COSEVI.CSLA.lib.accesoDatos.App_Constantes.cls_constantes.PERMISO, vo_permiso.pPK_permiso.ToString())) { this.eliminarDatos(vo_permiso); } else { //Se levanta PopUp indicando que no se puede eliminar el registro this.mpe_RegistroPermante.Show(); } break; default: break; } } catch (Exception po_exception) { String vs_error_usuario = "Ocurrió un error al intentar mostrar la ventana de edición para los registros."; this.lanzarExcepcion(po_exception, vs_error_usuario); } }
/// <summary> /// Crea un objeto de tipo /// cls_permiso con la informacón /// que se encuentra en el formalario /// web /// </summary> /// <returns>cls_permiso</returns> private cls_permiso crearObjeto() { cls_permiso vo_permiso = new cls_permiso(); if (((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).tipoEstado != cls_constantes.AGREGAR) { vo_permiso = (cls_permiso)((CSLA.web.App_Variables.cls_variablesSistema)this.Session[CSLA.web.App_Constantes.cls_constantes.VARIABLES]).obj; } try { vo_permiso.pNombre = txt_nombre.Text; return vo_permiso; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al crear el objeto para guardar el registro.", po_exception); } }
/// <summary> /// Método que permite seleccionar /// un permiso específico /// </summary> /// <param name="poPermiso"></param> /// <returns></returns> public static cls_permiso seleccionarPermiso(cls_permiso poPermiso) { try { String vs_comando = "PA_admi_permisoSelectOne"; cls_parameter[] vu_parametros = { new cls_parameter("@paramPK_permiso", poPermiso.pPK_permiso) }; DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros); poPermiso = new cls_permiso(); poPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[0]["PK_permiso"]); poPermiso.pNombre = vu_dataSet.Tables[0].Rows[0]["nombre"].ToString(); return poPermiso; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener el permiso específico.", po_exception); } }
/// <summary> /// Hace un lista de permisos con un filtrado específico. /// </summary> /// <param name="psFiltro">String filtro.</param> /// <returns></returns> public static List<cls_permiso> listarPermisoFiltro(string psFiltro) { List<cls_permiso> vo_lista = null; cls_permiso voPermiso = null; try { DataSet vu_dataSet = cls_gestorUtil.selectFilter(cls_constantes.PERMISO, string.Empty, psFiltro); vo_lista = new List<cls_permiso>(); for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++) { voPermiso = new cls_permiso(); voPermiso.pPK_permiso = Convert.ToInt32(vu_dataSet.Tables[0].Rows[i]["PK_permiso"]); voPermiso.pNombre = vu_dataSet.Tables[0].Rows[i]["nombre"].ToString(); vo_lista.Add(voPermiso); } return vo_lista; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener el listado de los permisos de manera filtrada.", po_exception); } }