private ManagedUser UpdateUser(IManagedTenant tenant, RemoteUserInfo user, ICollection <IEntity> entities) { using (Profiler.Measure("PlatformService.UpdateUser")) { var mu = default(IManagedUser); if (user.RemoteId <= 0) { return(null); } if (tenant != null) { mu = tenant.Users.FirstOrDefault(u => u.RemoteId == user.RemoteId.ToString()); } if (mu != null) { mu = mu.AsWritable <ManagedUser>(); } else { mu = CastEntityHelper.CreateUser(); mu.RemoteId = user.RemoteId.ToString(); } mu.Name = user.Name; switch (user.Status) { case UserStatus.Active: mu.Status_Enum = ManagedUserStatusEnumeration.Active; break; case UserStatus.Disabled: mu.Status_Enum = ManagedUserStatusEnumeration.Disabled; break; case UserStatus.Expired: mu.Status_Enum = ManagedUserStatusEnumeration.Expired; break; case UserStatus.Locked: mu.Status_Enum = ManagedUserStatusEnumeration.Locked; break; default: mu.Status_Enum = ManagedUserStatusEnumeration.Unknown; break; } var r = UpdateRoles(mu, user.Roles, entities); mu.Roles.AddRange(r); if (tenant != null) { mu.Tenant = tenant; } return((ManagedUser)mu); } }
public void RefreshUserInfo() { try { if (RemoteUserInfo != null) { RemoteUserInfo = proxy.RefreshUserInfo(); } } catch (Exception e) { throw new Exception("Error refreshing user info: " + e.GetFullMessage()); } }
public IManagedUser CreateOrUpdateUser(string databaseId, string tenant, RemoteUserInfo u) { using (Profiler.Measure("PlatformService.CreateOrUpdateUser")) { if (u == null) { throw new ArgumentException("User information was invalid."); } var entities = new EntityCollection <IEntity>(); var mu = default(IManagedUser); try { var mp = GetPlatformByDatabaseId(databaseId); if (mp != null) { mp = mp.AsWritable <ManagedPlatform>(); var mt = mp.ContainsTenants.FirstOrDefault(t => t.Name == tenant); if (mt != null) { mt = mt.AsWritable <ManagedTenant>(); entities.Add(mt); mu = UpdateUser(mt, u, entities); entities.Add(mu); } } } finally { CastEntityHelper.Save(entities); } return(mu); } }
public bool Login(string username, string password) { try { RemoteUserInfo = proxy.Login(username, password); if (RemoteUserInfo != null) { loginForm.TransitionToFileForm(); return(true); } else { return(false); } } catch (Exception ex) { throw ex; } }
public void TestCreateOrUpdateUser() { ManagedPlatform p = null; ManagedTenant t = null; ManagedUser u = null; try { // Arrange var ps = new PlatformService(); var ui = new RemoteUserInfo { Name = TestUserName }; // Act u = (ManagedUser)ps.CreateOrUpdateUser(TestPlatformId, TestTenantName, ui); // Assert u.Should().BeNull(); p = CreateTestPlatform(); t = CreateTestTenant(p); p.Save(); u = (ManagedUser)ps.CreateOrUpdateUser(TestPlatformId, TestTenantName, ui); u.Should().BeNull(); ui.RemoteId = TestUserRemoteId; u = (ManagedUser)ps.CreateOrUpdateUser(TestPlatformId, TestTenantName, ui); u.Should().NotBeNull(); u.Name.Should().Be(TestUserName); u.RemoteId.Should().Be(TestUserRemoteId.ToString()); u.Status_Enum.Should().Be(ManagedUserStatusEnumeration.Unknown); u.Tenant.Name.Should().Be(TestTenantName); u.Tenant.Platform.DatabaseId.Should().Be(TestPlatformId); var uid = u.Id; u = (ManagedUser)ps.CreateOrUpdateUser(TestPlatformId, TestTenantName, new RemoteUserInfo { RemoteId = TestUserRemoteId, Name = "Another Name", Status = UserStatus.Expired }); u.Should().NotBeNull(); u.Id.Should().Be(uid); u.Name.Should().Be("Another Name"); u.RemoteId.Should().Be(TestUserRemoteId.ToString()); u.Status_Enum.Should().Be(ManagedUserStatusEnumeration.Expired); u.Tenant.Name.Should().Be(TestTenantName); u.Tenant.Platform.DatabaseId.Should().Be(TestPlatformId); } finally { if (u != null) { Entity.Delete(u); } if (t != null) { Entity.Delete(t); } if (p != null) { Entity.Delete(p); } } }