public UserController(AddUserCommand addUserCommand
                              , EditUserCommand editUserCommand
                              , DeleteUserCommand deleteUserCommand
                              , GetAdminAppUserByIdQuery getAdminAppUserByIdQuery
                              , EditOdsInstanceRegistrationForUserCommand editOdsInstanceRegistrationForUserCommand
                              , EditUserRoleCommand editUserRoleCommand
                              , GetRoleForUserQuery getRoleForUserQuery
                              , IGetOdsInstanceRegistrationsByUserIdQuery getOdsInstanceRegistrationsByUserIdQuery
                              , IGetOdsInstanceRegistrationsQuery getOdsInstanceRegistrationsQuery
                              , ITabDisplayService tabDisplayService
                              , SignInManager <AdminAppUser> signInManager
                              , UserManager <AdminAppUser> userManager
                              )
        {
            _addUserCommand           = addUserCommand;
            _editUserCommand          = editUserCommand;
            _deleteUserCommand        = deleteUserCommand;
            _getAdminAppUserByIdQuery = getAdminAppUserByIdQuery;
            _editOdsInstanceRegistrationForUserCommand = editOdsInstanceRegistrationForUserCommand;
            _editUserRoleCommand = editUserRoleCommand;
            _getRoleForUserQuery = getRoleForUserQuery;
            _getOdsInstanceRegistrationsByUserIdQuery = getOdsInstanceRegistrationsByUserIdQuery;
            _getOdsInstanceRegistrationsQuery         = getOdsInstanceRegistrationsQuery;
            _tabDisplayService = tabDisplayService;

            SignInManager = signInManager;
            UserManager   = userManager;
        }
Beispiel #2
0
        public void ShouldEditUserRole()
        {
            var existingUsers = SetupUsers(2, Role.Admin).ToList();

            var userToBeSuperAdmin = existingUsers[0];
            var userToRemainAdmin  = existingUsers[1];

            var guidString = Guid.NewGuid().ToString("N");

            var updateModel = new EditUserRoleModel
            {
                UserId = userToBeSuperAdmin.Id,
                RoleId = Role.SuperAdmin.Value.ToString()
            };

            Scoped <AdminAppIdentityDbContext>(identity =>
            {
                var command = new EditUserRoleCommand(identity);

                command.Execute(updateModel);
            });

            Scoped <AdminAppIdentityDbContext>(identity =>
            {
                var query = new GetRoleForUserQuery(identity);

                var editedUserRole = query.Execute(userToBeSuperAdmin.Id);
                editedUserRole.ShouldBe(Role.SuperAdmin);

                var notEditedUserRole = query.Execute(userToRemainAdmin.Id);
                notEditedUserRole.ShouldBe(Role.Admin);
            });
        }
Beispiel #3
0
        public void ShouldDeleteUser()
        {
            var existingUsers = SetupUsers(2, Role.Admin).ToList();

            var userToBeDeleted    = existingUsers[0];
            var userNotToBeDeleted = existingUsers[1];

            var testInstances = SetupOdsInstanceRegistrations(6).OrderBy(x => x.Name).ToList();

            var testInstancesAssignedToDeletedUser    = testInstances.Take(3).ToList();
            var testInstancesAssignedToNotDeletedUser = testInstances.Skip(3).Take(3).ToList();

            SetupUserWithOdsInstanceRegistrations(userToBeDeleted.Id, testInstancesAssignedToDeletedUser);
            SetupUserWithOdsInstanceRegistrations(userNotToBeDeleted.Id, testInstancesAssignedToNotDeletedUser);

            Scoped <IGetOdsInstanceRegistrationsByUserIdQuery>(queryInstances =>
            {
                queryInstances.Execute(userToBeDeleted.Id).Count().ShouldBe(3);
                queryInstances.Execute(userNotToBeDeleted.Id).Count().ShouldBe(3);
            });

            var deleteModel = new DeleteUserModel
            {
                Email  = userToBeDeleted.Email,
                UserId = userToBeDeleted.Id
            };

            Scoped <AdminAppIdentityDbContext>(identity =>
            {
                var command = new DeleteUserCommand(identity);
                command.Execute(deleteModel);
            });

            Scoped <IGetOdsInstanceRegistrationsByUserIdQuery>(queryInstances =>
            {
                queryInstances.Execute(userToBeDeleted.Id).Count().ShouldBe(0);
                queryInstances.Execute(userNotToBeDeleted.Id).Count().ShouldBe(3);
            });

            Scoped <AdminAppIdentityDbContext>(identity =>
            {
                var queryRoles = new GetRoleForUserQuery(identity);

                var deletedUser = Query(userToBeDeleted.Id);
                deletedUser.ShouldBeNull();
                queryRoles.Execute(userToBeDeleted.Id).ShouldBeNull();

                var notDeletedUser = Query(userNotToBeDeleted.Id);
                notDeletedUser.UserName.ShouldBe(userNotToBeDeleted.UserName);
                notDeletedUser.Email.ShouldBe(userNotToBeDeleted.Email);
                queryRoles.Execute(userNotToBeDeleted.Id).ShouldBe(Role.Admin);
            });
        }
Beispiel #4
0
        public void ShouldGetRoleForUserById()
        {
            EnsureDefaultRoles();

            var testSuperAdminUser = SetupUsers(1, Role.SuperAdmin).Single();
            var testAdminUser      = SetupUsers(1, Role.Admin).Single();

            var command = new GetRoleForUserQuery();

            var result = command.Execute(testSuperAdminUser.Id);

            result.ShouldBe(Role.SuperAdmin);

            result = command.Execute(testAdminUser.Id);
            result.ShouldBe(Role.Admin);
        }
Beispiel #5
0
        public void ShouldGetRoleForUserById()
        {
            EnsureDefaultRoles();

            var testSuperAdminUser = SetupUsers(1, Role.SuperAdmin).Single();
            var testAdminUser      = SetupUsers(1, Role.Admin).Single();

            Scoped <AdminAppIdentityDbContext>(identity =>
            {
                var command = new GetRoleForUserQuery(identity);

                var result = command.Execute(testSuperAdminUser.Id);
                result.ShouldBe(Role.SuperAdmin);

                result = command.Execute(testAdminUser.Id);
                result.ShouldBe(Role.Admin);
            });
        }