示例#1
0
        public void HideCoreEveryoneRoles()
        {
            IList <AccessRule> accessRules;
            Solution           consoleSolution;

            using (DatabaseContext databaseContext = DatabaseContext.GetContext(true))
                using (new SecurityBypassContext())
                {
                    consoleSolution = Entity.Get <Solution>("core:consoleSolution");

                    accessRules = Entity.GetInstancesOfType <AccessRule>(false, "accessRuleHidden, allowAccess.{alias}, inSolution.{name}, controlAccess.{name}")
                                  .ToList();
                    foreach (AccessRule accessRule in accessRules)
                    {
                        if (accessRule.AllowAccessBy.Alias == "core:everyoneRole" &&
                            accessRule.InSolution != null && accessRule.InSolution.Name == "ReadiNow Core Data")
                        {
                            AccessRule writeableAccessRule = accessRule.AsWritable <AccessRule>();
                            writeableAccessRule.AccessRuleHidden = true;

                            if (writeableAccessRule.InSolution == consoleSolution)
                            {
                                writeableAccessRule.InSolution = null;
                            }

                            Console.Out.WriteLine("Making access rule on type {0} hidden", writeableAccessRule.ControlAccess.Name);

                            writeableAccessRule.Save();
                        }
                    }

                    databaseContext.CommitTransaction();
                }
        }
示例#2
0
        public void SecurityCheckTest()
        {
            UserAccount userAccount;

            const long testEntityId = 21660;

            userAccount = Entity.GetByName <UserAccount>("Erica.Mcknight").First();
            Assert.That(userAccount, Is.Not.Null, "User not found");

            using (new SetUser(Entity.GetByName <UserAccount>("Erica.Mcknight").First()))
                using (new ForceSecurityTraceContext(testEntityId))
                {
                    IEnumerable <IEntity> entities = Entity.GetInstancesOfType(new EntityRef(testEntityId)).ToList();
                    foreach (IEntity entity in entities)
                    {
                        Console.Out.WriteLine("{0} ({1})", entity.GetField("core:name"), entity.Id);
                    }

                    //new EntityAccessControlFactory().Service.Check(
                    //    new EntityRef(testEntityId),
                    //    new [] { Permissions.Delete });
                }
        }
示例#3
0
 IEnumerable <IEntity> GetListFromType(EntityType entityType)
 {
     return(Entity.GetInstancesOfType(new EntityRef(entityType.Id)));
 }