예제 #1
0
        public ActionResult AgregarPermisos(ModeloPermisosRol modelo)
        {
            tbRol Rol = db.tbRol.Where(x => x.codTipoUsuario == modelo.codRol).SingleOrDefault();


            List <tbRolPermiso> tbRolPermisosAnt = Rol.tbRolPermiso.ToList();

            foreach (var p in modelo.permisos)
            {
                if (p.IsChecked)
                {       //si no esta en la lista antigua de la base de datos
                    if (!tbRolPermisosAnt.Any(x => x.idPermiso == p.codPemiso))
                    {
                        //el permiso no estaba y fue agregado
                        db.tbRolPermiso.InsertOnSubmit(new tbRolPermiso {
                            idPermiso = p.codPemiso, codTipoUsuario = modelo.codRol
                        });
                    }//else: se encuentra en la base y no se quitó el permiso, no se modificoo
                }
                else
                {
                    //si esta en la lista antigua de la base de datos es por que el permiso esta asignado y debe removerse
                    if (tbRolPermisosAnt.Any(x => x.idPermiso == p.codPemiso))
                    {
                        //tbRolPermiso rp = (from r in db.tbRolPermiso where (r.idPermiso == p.idPermiso && r.codTipoUsuario==modelo.rol.codTipoUsuario) select r).SingleOrDefault();
                        tbRolPermiso rp = db.tbRolPermiso.Where(x => x.codTipoUsuario == modelo.codRol && x.idPermiso == p.codPemiso).SingleOrDefault();
                        db.tbRolPermiso.DeleteOnSubmit(rp);
                    }//else: no estaba y no ase agregaraa
                }
            }

            db.SubmitChanges();

            return(RedirectToAction("Index"));
        }
예제 #2
0
        public ActionResult AgregarPermisos(int?id)
        {
            //Se obtiene el rol
            tbRol rol = db.tbRol.Where(x => x.codTipoUsuario == id).SingleOrDefault();
            //se asigna rol al modelo
            ModeloPermisosRol modeloPermisoRol = new ModeloPermisosRol()
            {
                codRol    = rol.codTipoUsuario,
                NombreRol = rol.Rol
            };

            //todos los permisos que existen
            List <tbPermiso> todosLosPermisos = (from p in db.tbPermiso select p).ToList();

            //se obtienen los permisos del rol codigo y permiso
            var permisosDelRol = rol.tbRolPermiso.Select(p => p.tbPermiso);

            //se indican cuales son los permisos que se tienen actualmente
            var CheckBoxPermisos = new List <CheckBoxPermiso>();

            foreach (var p in todosLosPermisos)
            {
                CheckBoxPermisos.Add(new CheckBoxPermiso()
                {
                    codPemiso     = p.idPermiso,
                    nombrePermiso = p.Permiso,
                    //seleccionar los que existen
                    IsChecked = permisosDelRol.Where(x => x.idPermiso == p.idPermiso).Any()
                });
            }
            //se asigna al modelo
            modeloPermisoRol.permisos = CheckBoxPermisos;

            return(View(modeloPermisoRol));
        }