public void Can_grant_and_revoke_roles_between_users() { var capture = new PlaintextKeyCapture("rosebud", "rosebud"); var service = new TempKeyFileService(); var rootPubKey = CryptoTestHarness.GenerateKeyFile(_output, capture, service); capture.Reset(); var userPubKey = CryptoTestHarness.GenerateKeyFile(_output, capture, new TempKeyFileService()); capture.Reset(); var grant = new GrantRole("admin", rootPubKey, userPubKey); grant.Sign(service, capture); Assert.True(grant.Authority.SequenceEqual(rootPubKey)); Assert.True(grant.Subject.SequenceEqual(userPubKey)); Assert.True(grant.Verify(), "grant was not verified"); capture.Reset(); var revoke = new RevokeRole(Constants.DefaultOwnerRole, rootPubKey, userPubKey); revoke.Sign(service, capture); Assert.True(revoke.Authority.SequenceEqual(rootPubKey)); Assert.True(revoke.Subject.SequenceEqual(userPubKey)); Assert.True(revoke.Verify(), "revoke was not verified"); }
public void Invoke_FromSuperAdminToSuperAdmin_NotSavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = true }; var dataUserSaved = dataUser; var mockedUserRepository = new Mock <IUserRepository>(); var mockedUserAppsRepository = new Mock <IUserAppRepository>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); mockedUserRepository.Setup(r => r.Edit(It.IsAny <DataAccess.Models.User>())) .Callback <DataAccess.Models.User>(user => dataUserSaved = user); var action = new GrantRole(mockedUserAppsRepository.Object, mockedUserRepository.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.SuperAdmin); // Check Assert.False(actionResult); Assert.True(dataUserSaved.IsSuperAdmin); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); }
public async Task <IActionResult> GrantRole([FromRoute] Guid userId, [FromBody] GrantRole command) { command.UserId = userId; await commandQueryBus.SendAsync(command); return(NoContent()); }
public async Task HandleAsync(GrantRole command) { var user = await repository.GetAsync(command.UserId); var originalVersion = user.Version; user.GrantRole(command.Role); await repository.Update(user, originalVersion); }
public override int GetHashCode() { int hashcode = 157; unchecked { if (__isset.squareMid) { hashcode = (hashcode * 397) + SquareMid.GetHashCode(); } if (__isset.updateSquareProfile) { hashcode = (hashcode * 397) + UpdateSquareProfile.GetHashCode(); } if (__isset.inviteNewMember) { hashcode = (hashcode * 397) + InviteNewMember.GetHashCode(); } if (__isset.approveJoinRequest) { hashcode = (hashcode * 397) + ApproveJoinRequest.GetHashCode(); } if (__isset.createPost) { hashcode = (hashcode * 397) + CreatePost.GetHashCode(); } if (__isset.createOpenSquareChat) { hashcode = (hashcode * 397) + CreateOpenSquareChat.GetHashCode(); } if (__isset.deleteSquareChatOrPost) { hashcode = (hashcode * 397) + DeleteSquareChatOrPost.GetHashCode(); } if (__isset.removeSquareMember) { hashcode = (hashcode * 397) + RemoveSquareMember.GetHashCode(); } if (__isset.grantRole) { hashcode = (hashcode * 397) + GrantRole.GetHashCode(); } if (__isset.enableInvitationTicket) { hashcode = (hashcode * 397) + EnableInvitationTicket.GetHashCode(); } if (__isset.revision) { hashcode = (hashcode * 397) + Revision.GetHashCode(); } } return(hashcode); }
public void Invoke_IncorrectUserData_NotSavedInDatabase() { // Prepare var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var action = new GrantRole(mockedUserAppsRepository.Object, mockedUserRepository.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.False(actionResult); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); }
public void Invoke_CorrectData_SavedInDatabase() { // Prepare var dataUserApp = new DataAccess.Models.UserApps { User = new DataAccess.Models.User { Id = 1 }, App = new DataAccess.Models.App { Id = 1 }, Role = UserRole.User }; var dataUser = new DataAccess.Models.User { IsSuperAdmin = false }; var dataUserAppSaved = dataUserApp; var getAllResults = new List <DataAccess.Models.UserApps> { dataUserApp }; var mockedUserAppsRepository = new Mock <IUserAppRepository>(); mockedUserAppsRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.UserApps, bool> > >())) .Returns(getAllResults.AsQueryable()); mockedUserAppsRepository.Setup(r => r.Edit(It.IsAny <DataAccess.Models.UserApps>())) .Callback <DataAccess.Models.UserApps>(userApps => dataUserAppSaved = userApps); var mockedUserRepository = new Mock <IUserRepository>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); var action = new GrantRole(mockedUserAppsRepository.Object, mockedUserRepository.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.True(actionResult); Assert.NotEqual(UserRole.User, dataUserAppSaved.Role); Assert.Equal(UserRole.Manager, dataUserAppSaved.Role); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.UserApps>()), Times.Once); mockedUserAppsRepository.Verify(r => r.Save(), Times.Once); mockedUserRepository.Verify(r => r.Save(), Times.Never); }
private async void GrantRole() { var item = UserDataGrid.SelectedItem; var user = (UserCollectionItem)item; var grantRole = new GrantRole((Role)Enum.Parse(typeof(Role), user.NewRole), user.Version); var response = await mainWindow.CommandQueryDispatcher.SendAsync(grantRole, $"api/user-management/users/{user.Id}/grant-role", Infrastructure.Http.HttpOperationType.PATCH); if (response.StatusCode != System.Net.HttpStatusCode.NoContent) { MessageBox.Show("Grant Role"); return; } user.ResetRoleChange(user.NewRole); var column = UserDataGrid.Columns.Single(x => (string)x.Header == "ConfirmChange"); column.Visibility = Visibility.Hidden; }
public void Invoke_LowerRole_NotSavedInDatabase(UserRole oldRole, Enums.UserRole newRole) { // Prepare var dataUserApp = new DataAccess.Models.UserApps { User = new DataAccess.Models.User { Id = 1 }, App = new DataAccess.Models.App { Id = 1 }, Role = oldRole }; var dataUser = new DataAccess.Models.User { IsSuperAdmin = false }; var getAllResults = new List <DataAccess.Models.UserApps> { dataUserApp }; var mockedUserAppsRepository = new Mock <IUserAppRepository>(); mockedUserAppsRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.UserApps, bool> > >())) .Returns(getAllResults.AsQueryable()); var mockedUserRepository = new Mock <IUserRepository>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); var action = new GrantRole(mockedUserAppsRepository.Object, mockedUserRepository.Object); // Action var actionResult = action.Invoke(1, 1, newRole); // Check Assert.False(actionResult); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); }
public void Invoke_User_NotHaveAnyApp_NotSavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = false }; var mockedUserRepository = new Mock <IUserRepository>(); var mockedUserAppsRepository = new Mock <IUserAppRepository>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); var action = new GrantRole(mockedUserAppsRepository.Object, mockedUserRepository.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.False(actionResult); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); }
public override string ToString() { var sb = new StringBuilder("SquareAuthority("); bool __first = true; if (SquareMid != null && __isset.squareMid) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("SquareMid: "); SquareMid.ToString(sb); } if (__isset.updateSquareProfile) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("UpdateSquareProfile: "); UpdateSquareProfile.ToString(sb); } if (__isset.inviteNewMember) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("InviteNewMember: "); InviteNewMember.ToString(sb); } if (__isset.approveJoinRequest) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("ApproveJoinRequest: "); ApproveJoinRequest.ToString(sb); } if (__isset.createPost) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("CreatePost: "); CreatePost.ToString(sb); } if (__isset.createOpenSquareChat) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("CreateOpenSquareChat: "); CreateOpenSquareChat.ToString(sb); } if (__isset.deleteSquareChatOrPost) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("DeleteSquareChatOrPost: "); DeleteSquareChatOrPost.ToString(sb); } if (__isset.removeSquareMember) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("RemoveSquareMember: "); RemoveSquareMember.ToString(sb); } if (__isset.grantRole) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("GrantRole: "); GrantRole.ToString(sb); } if (__isset.enableInvitationTicket) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("EnableInvitationTicket: "); EnableInvitationTicket.ToString(sb); } if (__isset.revision) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("Revision: "); Revision.ToString(sb); } sb.Append(")"); return(sb.ToString()); }