protected override async Task <Unit> Process(UpdateRoleCommand request, CancellationToken cancellationToken) { var role = await _roleManager.GetById(request.Id); if (role == null) { await _notifiable.Notify("grupo", "grupo não encontrada."); return(Unit.Value); } role.Name = request.Name; var createRoleIdentityResult = await _roleManager.Update(role); foreach (var erro in createRoleIdentityResult.Errors) { await _notifiable.Notify(erro.Code, erro.Description); } if (_notifiable.IsValid()) { await _roleManager.ClearAllClaims(role); foreach (var permissao in request.Permissions) { _ = await _roleManager .AddClaim(role, new Claim(IdentityConfigurations.DefaultRoleClaim, permissao.ToLower())); } } return(Unit.Value); }
private static async Task EnsureRoles <TContext>(TContext dbContext, IRoleManager roleManager, IEnumerable <string> permissions) where TContext : DbContext { var roleDbSet = dbContext.Set <Role>(); if (!await roleDbSet.AnyAsync()) { var role = new Role(Guid.NewGuid(), AdminRole); await roleManager.CreateRole(role); foreach (var permission in permissions) { await roleManager.AddClaim(role, new Claim(IdentityConfigurations.DefaultRoleClaim, permission.ToLower())); } } }
protected override async Task <Unit> Process(CreateNewRoleCommand request, CancellationToken cancellationToken) { var role = new Role(request.Id, request.Name); var createRoleIdentityResult = await _roleManager.CreateRole(role); foreach (var erro in createRoleIdentityResult?.Errors) { await _notifiable.Notify(erro.Code, erro.Description); } if (_notifiable.IsValid()) { foreach (var permissao in request.Permissions) { _ = await _roleManager .AddClaim(role, new Claim(IdentityConfigurations.DefaultRoleClaim, permissao.ToLower())); } } return(Unit.Value); }