public void LegalMoveUserTest()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testUser  = this.NewObject <PC.SCUser>("测试群组");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddUser(testUser, testOrgB1);

            this.SetContainerMemberAndPermissions(testOrgB1, mainRole, new string[] { "DeleteChildren" });
            this.SetContainerMemberAndPermissions(testOrgB2, mainRole, new string[] { "AddChildren" });

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testUser, testOrgB2);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrgB2.ID, testUser.ID);

            Assert.IsNotNull(actual);

            Assert.AreEqual(actual.Default, true);
        }
        public void IllegalMoveUserTest3()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testUser  = this.NewObject <PC.SCUser>("测试群组");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddUser(testUser, testOrgB1);

            this.SetContainerMemberAndPermissions(testOrgB1, mainRole, new string[] { });
            this.SetContainerMemberAndPermissions(testOrgB2, mainRole, new string[] { });

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testUser, testOrgB2);

            Assert.Fail("不应执行到此");
        }
예제 #3
0
        public void AdminSetDefaultOrganizationTest()
        {
            InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");


            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUserToOrganization(testUserA, testOrgB);

            FacadeWithAcl.SetUserDefaultOrganization(testUserA, testOrgB);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrgB.ID, testUserA.ID);

            Assert.IsNotNull(actual);

            Assert.AreEqual(actual.Status, SchemaObjectStatus.Normal);

            Assert.AreEqual(actual.Default, true);
        }
        public void AdminMoveUserTest()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testUser  = this.NewObject <PC.SCUser>("测试群组");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddUser(testUser, testOrgB1);

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testUser, testOrgB2);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrgB2.ID, testUser.ID);

            Assert.IsNotNull(actual);

            Assert.AreEqual(actual.Default, true);
        }
예제 #5
0
        public void LegalDestroyUserTest()
        {
            this.InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUserToOrganization(testUserA, testOrgB);

            SetContainerMemberAndPermissions(testOrgA, mainRole, new string[] { "DeleteChildren" });

            SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.DeleteUser(testUserA, null, false);

            var actual = (PC.SCUser)PC.Adapters.SchemaObjectAdapter.Instance.Load(testUserA.ID);

            Assert.IsNotNull(actual);
            Assert.AreEqual(actual.OwnerID, testOrgA.ID);
            Assert.AreNotEqual(actual.Status, SchemaObjectStatus.Normal);
        }
예제 #6
0
        public void LegalRemoveSecretaryTest()
        {
            InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");
            var testUserB = this.NewObject <PC.SCUser>("测试用户B");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUser(testUserB, testOrgB);

            SetContainerMemberAndPermissions(testOrgA, mainRole, new string[] { "UpdateChildren" });
            SetContainerMemberAndPermissions(testOrgB, mainRole, new string[] { "UpdateChildren" });

            Facade.AddSecretaryToUser(testUserA, testUserB);

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.RemoveSecretaryFromUser(testUserA, testUserB);

            var actual = PC.Adapters.SCMemberRelationAdapter.Instance.Load(testUserB.ID, testUserA.ID);

            Assert.IsNotNull(actual);

            Assert.AreNotEqual(actual.Status, SchemaObjectStatus.Normal);
        }
예제 #7
0
        public void IllegalRemoveSecretaryTest3()
        {
            InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");
            var testUserB = this.NewObject <PC.SCUser>("测试用户B");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUser(testUserB, testOrgB);

            SetContainerMemberAndPermissions(testOrgB, mainRole, new string[] { "UpdateChildren" });

            Facade.AddSecretaryToUser(testUserA, testUserB);

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.RemoveSecretaryFromUser(testUserA, testUserB);

            Assert.Fail("不应执行到此");
        }
예제 #8
0
        public void IllegalAddUserToOrganizationTest()
        {
            InitAdmins();

            var mainApp  = this.CreateDefaultApp();
            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrg = NewObject <PC.SCOrganization>("测试组织");

            Facade.AddOrganization(testOrg, mainOrg);

            this.SetContainerMemberAndPermissions(testOrg, mainRole, new string[] { "AddChildren" });

            SetCurrentPrincipal(this.GetSCUserByCodeName("chenke"));

            var testUser = this.NewObject <PC.SCUser>("测试用户");

            Facade.AddUser(testUser, null);

            FacadeWithAcl.AddUserToOrganization(testUser, testOrg);

            Assert.Fail("不应执行到此");
        }
예제 #9
0
        public void LegalAddUserToOrganizationTest()
        {
            InitAdmins();

            var mainApp  = this.CreateDefaultApp();
            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrg = NewObject <PC.SCOrganization>("测试组织");

            Facade.AddOrganization(testOrg, mainOrg);

            this.SetContainerMemberAndPermissions(testOrg, mainRole, new string[] { "AddChildren" });

            SetCurrentPrincipal(this.GetSCUserByCodeName("wanglch"));

            var testUser = this.NewObject <PC.SCUser>("测试用户");

            Facade.AddUser(testUser, null);

            FacadeWithAcl.AddUserToOrganization(testUser, testOrg);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrg.ID, testUser.ID);

            Assert.IsNotNull(actual);
        }
예제 #10
0
        public void IllegalRemoveUserFromOrgTest()
        {
            InitAdmins();

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var mainApp = this.CreateDefaultApp();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var testOrg = NewObject <PC.SCOrganization>("测试组织");

            Facade.AddOrganization(testOrg, mainOrg);

            base.SetContainerMemberAndPermissions(testOrg, mainRole, new string[] { "DeleteChildren" });

            var testUser = NewObject <PC.SCUser>("测试用户");

            Facade.AddUser(testUser, testOrg);

            SetCurrentPrincipal(this.GetUserByCodeName("chenke"));

            base.RecalculateRoleUsers();

            FacadeWithAcl.DeleteUser(testUser, testOrg, true);

            var relation = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrg.ID, testUser.ID);

            Assert.Fail("不应执行到此");
        }
예제 #11
0
        public void AdminUpdateUserTest()
        {
            this.InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");


            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUserToOrganization(testUserA, testOrgB);

            FacadeWithAcl.UpdateUser(testUserA);
        }
예제 #12
0
        public void AdminRemoveUserFromOrgTest()
        {
            InitAdmins();

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrg = NewObject <PC.SCOrganization>("测试组织");

            Facade.AddOrganization(testOrg, mainOrg);

            var testUser = NewObject <PC.SCUser>("测试用户");

            Facade.AddUser(testUser, testOrg);

            FacadeWithAcl.DeleteUser(testUser, testOrg, true);

            var relation = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrg.ID, testUser.ID);

            Assert.IsTrue(relation == null || relation.Status != SchemaObjectStatus.Normal);
        }
예제 #13
0
        public void TestOfAdminAddRoleMembers()
        {
            this.InitAdmins();

            var mainApp = this.CreateDefaultApp();

            var mainRole = this.CreateDefaultRole();

            Facade.AddUser(new SCUser()
            {
                ID = Guid.NewGuid().ToString(), Name = "范海燕", CodeName = "fanhy", DisplayName = "fanyh"
            }, SCOrganization.GetRoot());

            var fanhy = GetSCUserByCodeName("fanhy");

            FacadeWithAcl.AddMemberToRole(fanhy, mainRole);

            var members = PC.Adapters.SCMemberRelationAdapter.Instance.LoadByContainerID(mainRole.ID);

            Assert.IsTrue((from m in members where m.ID == fanhy.ID select m).Any());
        }
예제 #14
0
        public void LegalUpdateUserTest()
        {
            this.InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUserToOrganization(testUserA, testOrgB);

            SetContainerMemberAndPermissions(testOrgA, mainRole, new string[] { "UpdateChildren" });

            SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.UpdateUser(testUserA);
        }
예제 #15
0
        public void IllegalAddSecretaryTest1()
        {
            InitAdmins();

            var mainRole  = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));
            var mainOrg   = this.GetOrganizationByCodeName("costEngineer");
            var testOrgA  = NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB  = NewObject <PC.SCOrganization>("测试组织B");
            var testUserA = this.NewObject <PC.SCUser>("测试用户A");
            var testUserB = this.NewObject <PC.SCUser>("测试用户B");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB, mainOrg);
            Facade.AddUser(testUserA, testOrgA);
            Facade.AddUser(testUserB, testOrgB);

            this.SetCurrentPrincipal(this.GetUserByCodeName("chenke"));

            FacadeWithAcl.AddSecretaryToUser(testUserA, testUserB);

            Assert.Fail("不应执行到此");
        }
예제 #16
0
        public void AdminAddUserToOrganizationTest()
        {
            InitAdmins();

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var mainApp = this.CreateDefaultApp();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var testOrg = NewObject <PC.SCOrganization>("测试组织");

            Facade.AddOrganization(testOrg, mainOrg);

            var testUser = this.NewObject <PC.SCUser>("测试用户");

            Facade.AddUser(testUser, null);

            FacadeWithAcl.AddUserToOrganization(testUser, testOrg);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrg.ID, testUser.ID);

            Assert.IsNotNull(actual);
        }