예제 #1
0
 /// <summary>
 /// Busca los elementos negados al usuario (por perfil activo y usuario) para el recurso señalado
 /// </summary>
 /// <param name="control_usuario">Referencia del recurso por proteger</param>
 /// <param name="id_usuario">Id de usuario al que se configurará</param>
 public static void AplicaSeguridadControlusuarioWeb(System.Web.UI.UserControl control_usuario, int id_usuario)
 {
     //Instanciando recurso (forma o control de usuario)
     using (Forma f = new Forma(control_usuario.AppRelativeVirtualPath))
     {
         //Si la forma existe
         if (f.habilitar)
         {
             //Cargando elementos negados al usuario señalado
             using (DataTable mit = ControlPerfilUsuario.CargaControlesNegadosUsuario(id_usuario, f.id_forma))
             {
                 //Si hay elementos por proteger ante el usuario
                 if (mit != null)
                 {
                     //Para cada uno de los controles que serán negados
                     foreach (string nombre_control in (from DataRow r in mit.Rows
                                                        select r["Nombre"].ToString()))
                     {
                         //Para Cada control de interés
                         foreach (System.Web.UI.Control control in control_usuario.Controls)
                         {
                             //Aplicando seguridad
                             aplicaSeguridadControl(nombre_control, control, f.tipo_recurso);
                         }
                     }
                 }
             }
         }
     }
 }
예제 #2
0
        /// <summary>
        /// Autorización sobre el control indicado para el perfil
        /// </summary>
        /// <param name="id_accion">Id Acción</param>
        /// <param name="id_usuario">Id Usuario</param>
        /// <param name="valor">-1 Niega Control / 1 Autoriza Control</param>
        /// <param name="id_usuario_actualiza">Usuario que realiza las actualizaciones del registro</param>
        /// <returns></returns>
        public static RetornoOperacion AutorizaControlUsuario(byte id_accion, int id_usuario, decimal valor, int id_usuario_actualiza)
        {
            //DFeclaramos Objeto Resultado
            RetornoOperacion resultado = new RetornoOperacion(0);

            //Creamos la transacción
            using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Cargamos Controles ligados a la Acción
                using (DataTable mit = SAT_CL.Seguridad.Control.CargaControles(id_accion))
                {
                    //Validamos Origen de Datos
                    if (Validacion.ValidaOrigenDatos(mit))
                    {
                        //Recorremos cada uno de los Controles
                        foreach (DataRow r in mit.Rows)
                        {
                            //Instanciamos Control Perfil Usuario
                            using (ControlPerfilUsuario objControlPerfilUsuario = new ControlPerfilUsuario(Tipo.Usuario, r.Field <int>("Id"), 0, id_usuario))
                            {
                                //Validamos Existencia del Objeto
                                if (objControlPerfilUsuario.id_control_perfil_usuario > 0)
                                {
                                    //Negamos Control Perfil Usuario
                                    resultado = objControlPerfilUsuario.editaControlPerfilUsuario((Tipo)objControlPerfilUsuario.id_tipo, objControlPerfilUsuario.id_control,
                                                                                                  objControlPerfilUsuario.id_perfil, objControlPerfilUsuario.id_usuario, valor, id_usuario_actualiza, objControlPerfilUsuario.habilitar);
                                }
                                else
                                {
                                    //Insertamos Nuevo Registro
                                    resultado = InsertaControlPerfilUsuario(Tipo.Usuario, r.Field <int>("Id"), 0, id_usuario, valor, id_usuario_actualiza);
                                }
                                //Validamos Resultado
                                if (!resultado.OperacionExitosa)
                                {
                                    //Salimos del Ciclo
                                    break;
                                }
                            }
                        }
                    }
                }
                //Validamos Resultado
                if (resultado.OperacionExitosa)
                {
                    //Finalizamos Transacción
                    scope.Complete();
                }
            }
            //Devolvemos Resultado
            return(resultado);
        }