private static List <Claim> GetClaims(this User user, string userType) { List <Claim> claims = new List <Claim>(); if (user == null) //a user is only a new users if they are a BCeID user or BC service card { claims.Add(new Claim(User.PermissionClaim, Permission.NewUserRegistration)); claims.Add(new Claim(User.UserTypeClaim, userType)); } else { if (!string.IsNullOrEmpty(user.SmUserId)) { claims.Add(new Claim(ClaimTypes.Name, user.SmUserId)); } if (!string.IsNullOrEmpty(user.Surname)) { claims.Add(new Claim(ClaimTypes.Surname, user.Surname)); } if (!string.IsNullOrEmpty(user.GivenName)) { claims.Add(new Claim(ClaimTypes.GivenName, user.GivenName)); } if (!string.IsNullOrEmpty(user.Email)) { claims.Add(new Claim(ClaimTypes.Email, user.Email)); } if (user.ContactId != null) { claims.Add(new Claim(User.UseridClaim, user.ContactId.ToString())); } if (!string.IsNullOrEmpty(user.UserType)) { claims.Add(new Claim(User.UserTypeClaim, user.UserType)); } var permissions = user.GetActivePermissions().Select(p => new Claim(User.PermissionClaim, p.Code)).ToList(); if (permissions.Any()) { claims.AddRange(permissions); } var roles = user.GetActiveRoles().Select(r => new Claim(ClaimTypes.Role, r.Name)).ToList(); if (roles.Any()) { claims.AddRange(roles); } } return(claims); }
private static List <Permission> GetActivePermissions(this User user) { List <Permission> result = null; var activeRoles = user.GetActiveRoles(); if (activeRoles != null) { IEnumerable <RolePermission> rolePermissions = activeRoles .Where(x => x != null && x.RolePermissions != null) .SelectMany(x => x.RolePermissions); result = rolePermissions.Select(x => x.Permission).Distinct().ToList(); } return(result); }
private static List <Claim> GetClaims(this User user) { List <Claim> claims = new List <Claim> { new Claim(ClaimTypes.Name, user.SmUserId) }; if (!string.IsNullOrEmpty(user.Surname)) { claims.Add(new Claim(ClaimTypes.Surname, user.Surname)); } if (!string.IsNullOrEmpty(user.GivenName)) { claims.Add(new Claim(ClaimTypes.GivenName, user.GivenName)); } if (!string.IsNullOrEmpty(user.Email)) { claims.Add(new Claim(ClaimTypes.Email, user.Email)); } if (user.Id != null) { claims.Add(new Claim(User.UseridClaim, user.Id.ToString())); } var permissions = user.GetActivePermissions().Select(p => new Claim(User.PermissionClaim, p.Code)).ToList(); if (permissions.Any()) { claims.AddRange(permissions); } var roles = user.GetActiveRoles().Select(r => new Claim(ClaimTypes.Role, r.Name)).ToList(); if (roles.Any()) { claims.AddRange(roles); } return(claims); }