public AuthenticablePrincipal AddRoleMember(AddSecurityRoleMemberModel model, ClaimsPrincipal user) { authorizationLogic.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, model, EventCategory.RoleManagementAddMember); AuthenticablePrincipal principal = configurationRepository.Get <AuthenticablePrincipal>(model.MemberId); if (principal == null) { throw new ReferencedObjectDoesNotExistException("Specified member id was not found. No changes have been made."); } SecurityRole role = configurationRepository.Get <SecurityRole>(model.RoleId); if (role == null) { throw new ReferencedObjectDoesNotExistException("Specified role id was not found. No changes have been made."); } if (role.Member == null) { role.Member = new List <Guid>(); } role.Member.Add(principal.Id); configurationRepository.Update <SecurityRole>(role); return(principal); }
public void RoleManagementLogic_AddRoleMember_UserNotFound_ThrowsReferencedObjectDoesNotExistException() { AddSecurityRoleMemberModel model = new AddSecurityRoleMemberModel() { MemberId = Guid.NewGuid(), RoleId = Guid.NewGuid() }; ClaimsPrincipal user = new ClaimsPrincipal(); Mock <IConfigurationRepository> configurationRepository = new Mock <IConfigurationRepository>(); configurationRepository.Setup(x => x.Get <AuthenticablePrincipal>(model.MemberId)).Returns((AuthenticablePrincipal)null); RoleManagementLogic roleManagementLogic = new RoleManagementLogic(configurationRepository.Object, new AuthorizeInitialSetup(configurationRepository.Object)); roleManagementLogic.AddRoleMember(model, user); }
public void RoleManagementLogic_AddRoleMember_Unauthorized_ThrowsUnauthorizedAccessException() { ClaimsPrincipal user = new ClaimsPrincipal(); AddSecurityRoleMemberModel model = new AddSecurityRoleMemberModel() { MemberId = Guid.NewGuid(), RoleId = Guid.NewGuid() }; Mock <IAuthorizationLogic> authorizationLogic = new Mock <IAuthorizationLogic>(); authorizationLogic.Setup(x => x.IsAuthorizedThrowsException(AuthorizationScopes.ManageRoles, user, It.IsAny <ILoggableEntity>(), It.IsAny <EventCategory>())).Throws(new UnauthorizedAccessException()); Mock <IConfigurationRepository> configurationRepository = new Mock <IConfigurationRepository>(); configurationRepository.Setup(x => x.Get <AuthenticablePrincipal>(model.MemberId)).Returns(new AuthenticablePrincipal()); configurationRepository.Setup(x => x.Get <SecurityRole>(model.RoleId)).Returns((SecurityRole)null); RoleManagementLogic roleManagementLogic = new RoleManagementLogic(configurationRepository.Object, authorizationLogic.Object); roleManagementLogic.AddRoleMember(model, user); }
public JsonResult AddRoleMember([FromRoute] AddSecurityRoleMemberModel model) { return(http.RespondSuccess(roleManagement.AddRoleMember(model, User))); }