Beispiel #1
0
        public async Task <ActionResult <string> > GuardarAsignacionesPermisoRol([FromBody] PostAsignacionesPermisoRol asignaciones)
        {
            try
            {
                string     urlBase = config.Value.urlbase;
                HttpClient cliente = new HttpClient();
                cliente.DefaultRequestHeaders.Add("Authorization", "Bearer " + HttpContext.Session.GetString("token"));
                var resultado = await cliente.PostAsJsonAsync(urlBase + "api/Roles/GuardarPermisosAsignados", asignaciones);

                if (resultado.IsSuccessStatusCode)
                {
                    return(await Task.Run(() => Ok(0)));
                }
                else
                {
                    _logger.LogError($"Ocurrio un error y no se pudieron almacenar los permisos");
                    return(BadRequest($"Ocurrio un error y no se pudieron almacenar los permisos"));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Ocurrio un error: { ex.ToString() }");
                return(BadRequest($"Ocurrio un error{ex.Message}"));
            }
        }
Beispiel #2
0
        public async Task <IActionResult> GuardarPermisosAsignados([FromBody] PostAsignacionesPermisoRol asignaciones)
        {
            try
            {
                var rol = await _rolemanager.FindByIdAsync(asignaciones.IdRol);

                var rolId = Guid.Parse(asignaciones.IdRol);
                if (rol != null)
                {
                    var listClaims = _context.RoleClaims.Where(p => p.RoleId.Equals(rolId)).ToList();

                    List <AspNetRoleClaims> permisosBorrar   = new List <AspNetRoleClaims>();
                    List <AspNetRoleClaims> permisosInsertar = new List <AspNetRoleClaims>();

                    foreach (var claim in listClaims)
                    {
                        if (asignaciones.Permisos.FirstOrDefault(p => p.Id.Equals(claim.ClaimType)) == null)
                        {
                            permisosBorrar.Add(claim);
                        }
                    }

                    foreach (var permiso in asignaciones.Permisos)
                    {
                        if (listClaims.FirstOrDefault(p => p.ClaimType.Equals(permiso.Id)) == null)
                        {
                            permisosInsertar.Add(new AspNetRoleClaims()
                            {
                                ClaimType  = permiso.Id,
                                ClaimValue = "true",
                                RoleId     = rolId
                            });
                        }
                    }

                    _context.RoleClaims.RemoveRange(permisosBorrar);
                    _context.RoleClaims.AddRange(permisosInsertar);
                    _context.SaveChanges();

                    return(new EmptyResult());
                }
                else
                {
                    return(BadRequest($"Rol no existe"));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest($"Ocurrio un error:{ex.Message}"));
            }
        }