public UserLockoutInfoViewModel()
        {
            SetUser = ReactiveCommand.CreateFromObservable <string, UserObject>(username => _adFacade.GetUser(username, TaskPoolScheduler.Default));

            GetLockoutInfo = ReactiveCommand.Create <Unit, IObservable <LockoutInfo> >(_ => _adFacade.GetLockoutInfo(_user.Value.CN, TaskPoolScheduler.Default));

            Close = ReactiveCommand.Create(_closeAction);

            _user = SetUser
                    .ToProperty(this, vm => vm.User);

            this.WhenActivated(disposables =>
            {
                GetLockoutInfo
                .Do(_ => _lockoutInfos.Clear())
                .Switch()
                .ObserveOnDispatcher()
                .Subscribe(lockoutInfo => _lockoutInfos.Add(lockoutInfo))
                .DisposeWith(disposables);

                Observable.Merge <(string Title, string Message)>(
                    SetUser.ThrownExceptions.Select(ex => ("Could not load user", ex.Message)),
                    GetLockoutInfo.ThrownExceptions.Select(ex => ("Could not get lockout info", ex.Message)),
                    Close.ThrownExceptions.Select(ex => ("Could not close dialog", ex.Message)))
                .SelectMany(dialogContent => _messages.Handle(new MessageInfo(MessageType.Error, dialogContent.Message, dialogContent.Title)))
                .Subscribe()
                .DisposeWith(disposables);
            });
        }
Exemple #2
0
        public void Test_Using()
        {
            UserAccount    userAccount;
            RequestContext oldRequestContext;
            RequestContext newRequestContext;

            userAccount      = new UserAccount();
            userAccount.Name = "foo" + Guid.NewGuid().ToString();
            userAccount.Save();

            oldRequestContext = RequestContext.GetContext();

            using (SetUser setUser = new SetUser(userAccount))
            {
                Assert.That(setUser, Has.Property("UserAccount").SameAs(userAccount));
                Assert.That(setUser, Has.Property("OldContext").Not.Null);

                Assert.That(RequestContext.GetContext(),
                            Has.Property("Tenant").EqualTo(oldRequestContext.Tenant));
                Assert.That(RequestContext.GetContext(),
                            Has.Property("Culture").EqualTo(oldRequestContext.Culture));

                newRequestContext = RequestContext.GetContext();
            }

            // Cannot compare to old context since the context may have changed in the
            // interim - it gets set with every access control check.
            Assert.That(oldRequestContext, Is.Not.SameAs(newRequestContext),
                        "Context not restored");

            // Do checks here so userAccount does not need security queries
            Assert.That(newRequestContext.Identity, Has.Property("Name").EqualTo(userAccount.Name));
            Assert.That(newRequestContext.Identity, Has.Property("Id").EqualTo(userAccount.Id));
        }
Exemple #3
0
        public PSLocalTask <SetUser, User> CreateSetUserTask(ExchangePrincipal executingUser)
        {
            SetUser task = new SetUser();

            this.InitializeTaskToExecuteInMode(executingUser, task, "Set-User", "Identity");
            return(new PSLocalTask <SetUser, User>(task));
        }
Exemple #4
0
        private void pictureBox2_Click(object sender, EventArgs e)
        {
            SetUser obj = new SetUser();

            obj.TopLevel = false;
            obj.Parent   = ClassCall.mainFormObj.masterpanel;
            obj.Show();
            obj.BringToFront();
        }
Exemple #5
0
        private SetUser SetupCommand(string userId, string[] args)
        {
            var command     = new SetUser(_userValidatorMock.Object, _usersControllerMock.Object, _userControllerWrapperMock.Object);
            var commandArgs = new List <string>(args);

            commandArgs.Insert(0, userId);
            commandArgs.Insert(0, "set-user");
            command.Initialize(commandArgs.ToArray(), _portalSettings, null, -1);
            return(command);
        }
        public void TriggeringUserIsSet()
        {
            var userAccount = new UserAccount();

            userAccount.Name = "foo" + Guid.NewGuid().ToString();
            userAccount.Save();

            using (var setUser = new SetUser(userAccount))
            {
                var run = new WorkflowRunDeferred(new Workflow());

                Assert.That(run.TriggeringUserId, Is.EqualTo(userAccount.Id));
                Assert.That(run.TriggeringUser.Id, Is.EqualTo(userAccount.Id));
            }
        }
Exemple #7
0
        public UserWindowViewModel()
        {
            SetUser = ReactiveCommand.CreateFromObservable <string, UserObject>(identity => Locator.Current.GetService <ADFacade>().GetUser(identity));

            _user = SetUser
                    .ToProperty(this, vm => vm.User);

            this.WhenActivated(disposables =>
            {
                SetUser
                .ThrownExceptions
                .SelectMany(ex => _messages.Handle(new MessageInfo(MessageType.Error, ex.Message, "Could not load user")))
                .Subscribe()
                .DisposeWith(disposables);
            });
        }
        public void EffectiveUserIsTriggeringUser()
        {
            var triggerer = new UserAccount();

            triggerer.Name = "foo" + Guid.NewGuid().ToString();
            triggerer.Save();

            using (var setUser = new SetUser(triggerer))
            {
                var run      = new WorkflowRunDeferred(new Workflow());
                var runState = new TestRunState(new WorkflowMetadata(), run);

                Assert.That(runState.EffectiveSecurityContext.Identity, Is.Not.Null);
                Assert.That(runState.EffectiveSecurityContext.Identity.Id, Is.EqualTo(triggerer.Id));
                Assert.That(runState.EffectiveSecurityContext.SecondaryIdentity, Is.Null);
            }
        }
        public void SecondaryIdentityIsTriggeringWhenWfIsRunAsOwner()
        {
            var triggerer = new UserAccount();

            triggerer.Name = "foo" + Guid.NewGuid().ToString();
            triggerer.Save();

            var owner = new UserAccount();

            owner.Name = "foo2" + Guid.NewGuid().ToString();
            owner.Save();

            var wf = new Workflow()
            {
                SecurityOwner = owner, WorkflowRunAsOwner = true
            };

            wf.Save();

            using (var setUser = new SetUser(triggerer))
            {
                using (new SecurityBypassContext())
                {
                    var metadata = new WorkflowMetadata(wf);

                    var run      = new WorkflowRunDeferred(new Workflow());
                    var runState = DefaultRunStateFactory.Singleton.CreateRunState(metadata, run);
                    //var runState = new TestRunState(metadata, run);

                    Assert.That(runState.EffectiveSecurityContext.Identity, Is.Not.Null);
                    Assert.That(runState.EffectiveSecurityContext.Identity.Id, Is.EqualTo(owner.Id));
                    Assert.That(runState.EffectiveSecurityContext.SecondaryIdentity, Is.Not.Null);
                    Assert.That(runState.EffectiveSecurityContext.SecondaryIdentity.Id, Is.EqualTo(triggerer.Id));
                }
            }
        }