private void UpdateUsersRolesList(IStorageSession session, UserEntity userEntity, IEnumerable <string> newRoles)
        {
            var newRolesList = newRoles.Any()
                                   ? session.Query <RoleEntity>(staleResults: StaleResultsMode.WaitForNonStaleResults)
                               .ContainsIn(r => r.RoleName, newRoles)
                               .ToList()
                                   : Enumerable.Empty <RoleEntity>();

            var roleNamesToRemove = userEntity.GetRolesToRemove(newRoles);

            foreach (var roleName in roleNamesToRemove)
            {
                if (userEntity.RemoveRole(roleName))
                {
                    _log.Debug(m => m("remove role by name {0}", roleName));
                }
            }

            foreach (var roleEntity in newRolesList)
            {
                if (userEntity.AddRole(roleEntity.RoleName))
                {
                    _log.Debug(m => m("Added user {0} to role {1}", userEntity, roleEntity));
                }
            }
        }
Beispiel #2
0
        internal override async Task <ToggleView> LocateView(IStorageSession session)
        {
            var projection = await session.QueryProjection <ToggleView>();

            return(projection
                   .SingleOrDefault(view => view.ID == _toggleID));
        }
Beispiel #3
0
        internal override async Task <ToggleView> LocateView(IStorageSession session)
        {
            var projection = await session.QueryProjection <ToggleView>();

            return(projection
                   .SingleOrDefault(t => t.Name.Equals(_toggleName, StringComparison.OrdinalIgnoreCase)));
        }
Beispiel #4
0
        internal override async Task <Toggle> LocateAggregate(IStorageSession session)
        {
            var view = await LocateView(session);

            return(view != null
                                ? await session.LoadAggregate <Toggle>(view.ID)
                                : null);
        }
Beispiel #5
0
 public OutsideSessionDecorator(IStorageSession outsideSession)
 {
     if (_log.IsDebugEnabled)
     {
         _id = Guid.NewGuid();
     }
     _log.Debug(m => m("Warpper session is opened with an id {0}", _id));
     _outsideSession = outsideSession;
 }
        public void Should_Executed_Correctly_With_Outside_session()
        {
            _enableOutsideSession = true;
            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();
            }

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                var status = ObtainUser("user", "role3");
                _outsideSession.SubmitChanges();
                status.Should().Be(MembershipCreateStatus.Success);
            }
        }
Beispiel #7
0
        public void Should_Executed_Correctly_With_Outside_session()
        {
            _enableOutsideSession = true;
            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();
            }

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                var status = ObtainUser("user", "role3");
                _outsideSession.SubmitChanges();
                status.Should().Be(MembershipCreateStatus.Success);
            }
        }
Beispiel #8
0
        public void Should_Ignore_When_Invoke_inSecond_time_With_Outside_session()
        {
            _enableOutsideSession = true;

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();

                var status = ObtainUser("user");
                status.Should().Be(MembershipCreateStatus.Success);
                _outsideSession.SubmitChanges();

                ObtainUserInRole("user", "role3");
                _outsideSession.SubmitChanges();
            }

            using (var session = RavenDb.Storage.OpenSession())
            {
                session.Query <RoleEntity>().Should().HaveCount(3);
                session.Query <RoleEntity>().Select(r => r.RoleName).Should().Contain("role1", "role2", "role3");

                session.Query <UserEntity>().Should().HaveCount(1);
                session.Query <UserEntity>().Select(u => u.Username).Should().OnlyContain(u => u == "user");
                session.Query <UserEntity>().Single().Roles.Should().OnlyContain(r => r == "role3");
            }

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();

                var status = ObtainUser("user", "role3");
                status.Should().BeNull();
            }
        }
Beispiel #9
0
 public StorageBehaviorTests()
 {
     _session  = Substitute.For <IStorageSession>();
     _behavior = new StorageBehavior <Request, Response>(_session);
 }
Beispiel #10
0
 public RenameToggleHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #11
0
 internal override async Task <Toggle> LocateAggregate(IStorageSession session)
 {
     return(await session.LoadAggregate <Toggle>(_toggleID));
 }
Beispiel #12
0
 protected abstract THandler CreateHandler(IStorageSession session);
Beispiel #13
0
 protected override RemoveConditionHandler CreateHandler(IStorageSession session) => new RemoveConditionHandler(session);
Beispiel #14
0
 public CreateToggleHandler(IStorageSession session)
 {
     _session = session;
 }
 protected override AddConditionHandler CreateHandler(IStorageSession session)
 {
     return(new AddConditionHandler(session));
 }
        private void UpdateUsersRolesList(IStorageSession session, UserEntity userEntity, IEnumerable<string> newRoles)
        {
            var newRolesList = newRoles.Any()
                                   ? session.Query<RoleEntity>(staleResults: StaleResultsMode.WaitForNonStaleResults)
                                         .ContainsIn(r => r.RoleName, newRoles)
                                         .ToList()
                                   : Enumerable.Empty<RoleEntity>();

            var roleNamesToRemove = userEntity.GetRolesToRemove(newRoles);
            foreach (var roleName in roleNamesToRemove)
            {
                if (userEntity.RemoveRole(roleName))
                {
                    _log.Debug(m => m("remove role by name {0}", roleName));
                }
            }

            foreach (var roleEntity in newRolesList)
            {
                if (userEntity.AddRole(roleEntity.RoleName))
                {
                    _log.Debug(m => m("Added user {0} to role {1}", userEntity, roleEntity));
                }
            }
        }
 public UserRepositoryImpl(IStorageSession outsideSession)
     : base(outsideSession)
 {
 }
 public RoleRepositoryImpl(IStorageSession outsideSession)
 {
     _outsideSession = outsideSession;
 }
Beispiel #19
0
 protected override UpdateToggleTagsHandler CreateHandler(IStorageSession session)
 {
     return(new UpdateToggleTagsHandler(session));
 }
 public GetAllTogglesHandlerTests()
 {
     _session = Substitute.For <IStorageSession>();
     _handler = new GetAllTogglesHandler(_session);
 }
 public RemoveConditionHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #22
0
 protected RepositoryBase(IStorageSession outsideSession)
 {
     _outsideSession = outsideSession;
     ProvidersIndexes.Ensure(((RavenDbSession)outsideSession).Session.Advanced.DocumentStore);
 }
 protected RepositoryBase(IStorageSession outsideSession)
 {
     _outsideSession = outsideSession;
     ProvidersIndexes.Ensure(((RavenDbSession)outsideSession).Session.Advanced.DocumentStore);
 }
Beispiel #24
0
 public CreateToggleValidator(IStorageSession session)
 {
     _session = session;
 }
        public void Should_Ignore_When_Invoke_inSecond_time_With_Outside_session()
        {
            _enableOutsideSession = true;

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();

                var status = ObtainUser("user");
                status.Should().Be(MembershipCreateStatus.Success);
                _outsideSession.SubmitChanges();

                ObtainUserInRole("user", "role3");
                _outsideSession.SubmitChanges();
            }

            using (var session = RavenDb.Storage.OpenSession())
            {
                session.Query<RoleEntity>().Should().HaveCount(3);
                session.Query<RoleEntity>().Select(r => r.RoleName).Should().Contain("role1", "role2", "role3");

                session.Query<UserEntity>().Should().HaveCount(1);
                session.Query<UserEntity>().Select(u => u.Username).Should().OnlyContain(u => u == "user");
                session.Query<UserEntity>().Single().Roles.Should().OnlyContain(r => r == "role3");
            }

            using (_outsideSession = RavenDb.Storage.OpenSession())
            {
                ObtainRequiredRoles("role1", "role2", "role3");
                _outsideSession.SubmitChanges();

                var status = ObtainUser("user", "role3");
                status.Should().BeNull();
            }
        }
Beispiel #26
0
 public GetAllTogglesHandler(IStorageSession session)
 {
     _session = session;
 }
 public ChangeConditionModeHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #28
0
 public GetToggleHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #29
0
 public StorageBehavior(IStorageSession session)
 {
     _session = session;
 }
 public UserRepositoryImpl(IStorageSession outsideSession)
     : base(outsideSession)
 {
 }
 public UpdateToggleTagsHandler(IStorageSession session)
 {
     _session = session;
 }
 public RoleRepositoryImpl(IStorageSession outsideSession)
 {
     _outsideSession = outsideSession;
 }
Beispiel #33
0
 public ChangeToggleNameHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #34
0
 public AddConditionHandler(IStorageSession session)
 {
     _session = session;
 }
 public WriteStatisticsHandler(IStorageSession session)
 {
     _session = session;
 }
Beispiel #36
0
 internal abstract Task <Toggle> LocateAggregate(IStorageSession session);