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); }); }
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)); }
public PSLocalTask <SetUser, User> CreateSetUserTask(ExchangePrincipal executingUser) { SetUser task = new SetUser(); this.InitializeTaskToExecuteInMode(executingUser, task, "Set-User", "Identity"); return(new PSLocalTask <SetUser, User>(task)); }
private void pictureBox2_Click(object sender, EventArgs e) { SetUser obj = new SetUser(); obj.TopLevel = false; obj.Parent = ClassCall.mainFormObj.masterpanel; obj.Show(); obj.BringToFront(); }
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)); } }
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)); } } }