コード例 #1
0
        public async Task <ActionResult> GestionarPermisos(string id)
        {
            IdentityRole rol = await _roleManager.FindByIdAsync(id);

            if (rol == null)
            {
                return(NotFound(new ApiResponseFormat()
                {
                    Estado = StatusCodes.Status404NotFound, Mensaje = "Rol invalido"
                }));
            }

            var permisos_activos = await _roleManager.GetClaimsAsync(rol);

            RolPermisoVerViewModel rolConPermisos = new RolPermisoVerViewModel()
            {
                IdRol = rol.Id
            };

            foreach (Permiso permiso in await _context.Permisos.ToListAsync())
            {
                PermisoAsignado permisos = new PermisoAsignado()
                {
                    Type  = permiso.Tipo,
                    Value = permiso.Valor
                };

                if (permisos_activos.Any(p => p.Type == permiso.Tipo))
                {
                    permisos.Activo = true;
                }

                rolConPermisos.Permisos.Add(permisos);
            }

            return(Ok(new ApiResponseFormat()
            {
                Estado = StatusCodes.Status200OK, Dato = rolConPermisos
            }));
        }
コード例 #2
0
        public async Task <ActionResult <IEnumerable <UsuarioVerPermisosViewModel> > > GestionarPermisos(string id)
        {
            Usuario user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(NotFound(new ApiResponseFormat()
                {
                    Estado = StatusCodes.Status404NotFound, Mensaje = "IUsuario invalido"
                }));
            }

            var permisos_activos = await _userManager.GetClaimsAsync(user);

            UsuarioVerPermisosViewModel permisos_agregar = new UsuarioVerPermisosViewModel()
            {
                IdUsuario = user.Id
            };

            foreach (Permiso permiso in await _context.Permisos.ToListAsync())
            {
                PermisoAsignado permisos = new PermisoAsignado()
                {
                    Type  = permiso.Tipo,
                    Value = permiso.Valor
                };

                if (permisos_activos.Any(p => p.Type == permiso.Tipo && p.Value.Equals("true")))
                {
                    permisos.Activo = true;
                }

                permisos_agregar.Permisos.Add(permisos);
            }

            return(Ok(new ApiResponseFormat()
            {
                Estado = StatusCodes.Status200OK, Dato = permisos_agregar
            }));
        }