Inheritance: ComparerTests.TestCaseStructure
        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");
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public async Task <IActionResult> GrantRole([FromRoute] Guid userId, [FromBody] GrantRole command)
        {
            command.UserId = userId;
            await commandQueryBus.SendAsync(command);

            return(NoContent());
        }
Beispiel #4
0
        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);
    }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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;
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
    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());
    }