示例#1
0
 /// <summary>
 /// Erzeugen aller standart rollen (Admin und Datenschutzbeauftragter mit den jeweiligen rechten)
 /// </summary>
 /// <param name="roleService">rollen service</param>
 public static void SeedRoles(IRoleService roleService)
 {
     foreach (string roleToCreate in RoleClaims.DEFAULT_GROUPS)
     {
         Role role = roleService.FindRoleByNameAsync(roleToCreate).Result;
         if (role == null)
         {
             roleService.CreateAsync(new Role()
             {
                 Name = roleToCreate
             }).Wait();
         }
         role = roleService.FindRoleByNameAsync(roleToCreate).Result;
         if (role != null)
         {
             IList <Claim> existingClaims = roleService.GetClaimsAsync(role).Result;
             List <Claim>  claimsToCheck  = new List <Claim>();
             if (role.Name.Equals(RoleClaims.ADMIN_GROUP))
             {
                 claimsToCheck = RoleClaims.GetAllAdminClaims();
             }
             else if (role.Name.Equals(RoleClaims.DATA_SECURITY_ENGINEER_GROUP))
             {
                 claimsToCheck = RoleClaims.GetAllDsgvoClaims();
             }
             foreach (Claim claim in claimsToCheck)
             {
                 if (existingClaims.FirstOrDefault(x => x.Type.Equals(claim.Type) && x.Value.Equals(claim.Value)) == null)
                 {
                     roleService.AddClaimAsync(role, claim).Wait();
                 }
             }
         }
     }
 }
示例#2
0
 public async Task <IdentityResult> RemoveClaimAsync(Role role, Claim claim)
 {
     if ((role.Id == 1 && RoleClaims.GetAllAdminClaims().FirstOrDefault(x => x.Type.Equals(claim.Type)) != null &&
          RoleClaims.GetAllAdminClaims().FirstOrDefault(x => x.Value.Equals(claim.Value)) != null) ||
         role.Id == 2 && RoleClaims.GetAllDsgvoClaims().FirstOrDefault(x => x.Type.Equals(claim.Type)) != null &&
         RoleClaims.GetAllDsgvoClaims().FirstOrDefault(x => x.Value.Equals(claim.Value)) != null)
     {
         return(IdentityResult.Success);
     }
     return(await manager.RemoveClaimAsync(role, claim));
 }