Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public void RefreshUserInfo()
 {
     try
     {
         if (RemoteUserInfo != null)
         {
             RemoteUserInfo = proxy.RefreshUserInfo();
         }
     }
     catch (Exception e)
     {
         throw new Exception("Error refreshing user info: " + e.GetFullMessage());
     }
 }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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);
                }
            }
        }