public void GetRoleClaims_UserHasDefaultRoles_ReturnEmptyClaims() { var result = RolesServiceUtils.GetRoleClaims(new User()); Assert.That(result, Is.Not.Null); Assert.That(result, Is.Empty); }
public void GetRoleClaims_UserIsNull_ReturnEmptyClaims() { var result = RolesServiceUtils.GetRoleClaims(null); Assert.That(result, Is.Not.Null); Assert.That(result, Is.Empty); }
public void GetRoleClaims_VctRoleIsOutOfRange_ThrowArgumentOutOfRangeException() { var user = new User(); user.SetRoles(vct: 5); Assert.That(() => RolesServiceUtils.GetRoleClaims(user), Throws.Exception.TypeOf <ArgumentOutOfRangeException>()); }
public void GetRoleClaims_UserIsTrialAdminAndMapperIsOutOfRange_ThrowArgumentOutOfRangeException() { var user = new User(); user.SetRoles(admin: 1, mapper: 5); Assert.That(() => RolesServiceUtils.GetRoleClaims(user), Throws.Exception.TypeOf <ArgumentOutOfRangeException>()); }
public void GetRoleClaims_UserIsAdmin_ReturnClaimsWithAdminRole() { var user = new User(); user.SetRoles(2); var result = RolesServiceUtils.GetRoleClaims(user); Assert.That(result, Is.Not.Empty); Assert.That(result.Count(), Is.EqualTo(1)); Assert.That(result.First().Value, Is.EqualTo("admin").IgnoreCase); }
public void GetRoleClaims_UserIsSupporterAndScripter_ReturnClaimsWithSupporterAndScripterRole() { var user = new User(); user.SetRoles(supporter: 1, scripter: 3); var result = RolesServiceUtils.GetRoleClaims(user); Assert.That(result, Is.Not.Empty); Assert.That(result.Count(), Is.EqualTo(2)); Assert.That(result.First().Value, Is.EqualTo("supporter").IgnoreCase); Assert.That(result.Last().Value, Is.EqualTo("scripter").IgnoreCase); }
public async Task <bool> IsPermitted(int userId, params RoleType[] roleTypes) { if (Configuration.IsDev(userId)) { return(true); } var query = RolesServiceUtils.BuildIsPermittedQuery(userId, roleTypes); var result = await database.SelectQueryFirst <IsPermittedResult>(query) ?? throw new DatabaseException(); return(result.IsPermitted); }
public async Task <bool> IsPermitted(User user, params RoleType[] roleTypes) { if (user == null) { throw new EntityNotFoundException("User not found"); } if (Configuration.IsDev(user.Id)) { return(true); } var query = RolesServiceUtils.BuildIsPermittedQuery(user.Id, roleTypes); var result = await database.SelectQueryFirst <IsPermittedResult>(query) ?? throw new DatabaseException(); return(result.IsPermitted); }
public string GenerateToken(User user) { var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Username), new Claim(ClaimTypes.Email, user.Email) }; var roleClaims = RolesServiceUtils.GetRoleClaims(user); foreach (var roleClaim in roleClaims) { claims.Add(roleClaim); } if (Configuration.IsDev(user.Id)) { claims.Add(new Claim(ClaimTypes.Role, Utils.EnumToString(RoleType.Owner))); } var key = new SymmetricSecurityKey( Encoding.UTF8.GetBytes(Configuration.GetValue <string>(AppSettingsKeys.Token))); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(Constants.JwtTokenExpireTimeInDays), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }