Exemplo n.º 1
0
        private void CreateAccessRules(IAccessRuleFactory accessRuleFactory, IAccessRuleReportFactory accessRuleReportFactory,
                                       Subject subject, IList <string> typeNames, IList <EntityRef> permissions, string aliasTemplate,
                                       Solution solution = null)
        {
            AccessRule accessRule;

            foreach (string typeName in typeNames)
            {
                SecurableEntity targetType = Entity.Get <SecurableEntity>(typeName);
                Assert.That(targetType, Is.Not.Null,
                            string.Format("Type {0} does not exist", typeName));

                accessRule = accessRuleFactory.AddAllowByQuery(
                    subject,
                    targetType,
                    permissions,
                    accessRuleReportFactory.GetDisplayReportForSecurableEntity(targetType));
                accessRule                  = accessRule.AsWritable <AccessRule>();
                accessRule.Alias            = string.Format(aliasTemplate, new EntityRef(typeName).Alias);
                accessRule.AccessRuleHidden = true;
                if (solution != null)
                {
                    accessRule.InSolution = solution;
                }

                accessRule.Save();

                Console.WriteLine("Create access rule {0} {1}", accessRule.Alias, accessRule.Id);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Create a new <see cref="AccessRulesController" /> with the given
        ///     <see cref="IAccessRuleFactory" /> for creating new access rules.
        /// </summary>
        /// <param name="accessRuleFactory">
        ///     The <see cref="IAccessRuleFactory" /> to use. This cannot be null.
        /// </param>
        /// <param name="accessRuleReportFactory">
        ///     The <see cref="IAccessRuleReportFactory" /> to use. This cannot be null.
        /// </param>
        /// <exception cref="ArgumentNullException">
        ///     No argument can be null.
        /// </exception>
        internal AccessRulesController(IAccessRuleFactory accessRuleFactory, IAccessRuleReportFactory accessRuleReportFactory)
        {
            if (accessRuleFactory == null)
            {
                throw new ArgumentNullException("accessRuleFactory");
            }
            if (accessRuleReportFactory == null)
            {
                throw new ArgumentNullException("accessRuleReportFactory");
            }

            RuleFactory   = accessRuleFactory;
            ReportFactory = accessRuleReportFactory;
        }