Пример #1
0
        private void UpdateAccess(FunctionTypeAttribute functionTypeAttribute, WrappedPageType functionType)
        {
            AccessTimer.Start();

            int functionTypeID = functionType.ID;

            var functionAccessControlList = ManageAccessHandler.GetACLOfFunctionType(functionTypeID);

            ContentFunctionType.Load(functionTypeID);

            var defaultAccessControlList = ManageAccessHandler.LoadDefaultAccessFunctionType();

            bool chanaged = false;

            foreach (var accessEntry in defaultAccessControlList.Where(a => functionAccessControlList.Exists(a.Key) == false).ToList())
            {
                functionAccessControlList.Add(accessEntry.Value);
                chanaged = true;
            }

            if (chanaged)
            {
                ManageAccessHandler.SaveAccessFunctionType(functionAccessControlList, null, functionTypeID);
                Logger.DebugFormat("UpdateAccess for {0}", functionTypeID);
            }

            AccessTimer.Stop();
        }
Пример #2
0
        private void UpdateRules(FunctionTypeAttribute functionTypeAttribute, WrappedPageType functionType)
        {
            RulesTimer.Start();

            int functionTypeID = functionType.ID;

            var filteredPageTypes   = _pageTypes;
            var filteredContetTypes = _contentTypes;

            if (functionTypeAttribute.AvailableOnPages == AvailableOn.Specific)
            {
                filteredPageTypes = PageTypeHelper.GetPageTypes(functionTypeAttribute.AvailableOnPageTypes);
            }

            if (functionTypeAttribute.AvailableOnContent == AvailableOn.Specific)
            {
                filteredContetTypes = PageTypeHelper.GetFunctionPageTypes(functionTypeAttribute.AvailableOnContentTypes);
            }

            var rules = new List <TypeIdContentAreaId>();

            foreach (var pageType in filteredPageTypes)
            {
                var realPageType = PageType.Load(pageType.ID);
                if (realPageType == null)
                {
                    continue;
                }
                var pageAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(realPageType);

                foreach (var pageArea in pageAreas)
                {
                    rules.Add(new TypeIdContentAreaId(pageType.ID, pageArea.ID));
                }
            }

            foreach (var contentType in filteredContetTypes)
            {
                if (contentType.ID == functionTypeID)
                {
                    continue;
                }

                List <ContentAreaData> contentAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(contentType.ID);

                foreach (var contentArea in contentAreas)
                {
                    rules.Add(new TypeIdContentAreaId(contentType.ID, contentArea.ID));
                }
            }

            SyncRules(functionTypeID, rules);

            RulesTimer.Stop();
        }
Пример #3
0
        private void UpdateRules(FunctionTypeAttribute functionTypeAttribute, PageType functionType)
        {
            int functionTypeID = functionType.ID;

            RuleContentAreaCollection ruleCaCollection = RuleContentAreaManager.XMLRuleContentAreaList();

            ruleCaCollection.RemoveRuleContentFunction(functionTypeID);

            var filteredPageTypes   = _pageTypes;
            var filteredContetTypes = _contentTypes;

            if (functionTypeAttribute.AvailableOnPages == AvailableOn.Specific)
            {
                filteredPageTypes = PageTypeHelper.GetPageTypes(functionTypeAttribute.AvailableOnPageTypes);
            }

            if (functionTypeAttribute.AvailableOnContent == AvailableOn.Specific)
            {
                filteredContetTypes = PageTypeHelper.GetFunctionPageTypes(functionTypeAttribute.AvailableOnContentTypes);
            }

            foreach (var pageType in filteredPageTypes)
            {
                List <ContentAreaData> pageAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(pageType);

                foreach (var pageArea in pageAreas)
                {
                    ruleCaCollection.AddRule(pageType.ID, pageArea.ID, functionTypeID);
                }
            }

            foreach (var contentType in filteredContetTypes)
            {
                if (contentType.ID == functionTypeID)
                {
                    continue;
                }

                List <ContentAreaData> contentAreas = ContentAreaManager.GetAvailableContentAreasViaProperty(contentType.ID);

                foreach (var contentArea in contentAreas)
                {
                    ruleCaCollection.AddRule(contentType.ID, contentArea.ID, functionTypeID);
                }
            }

            RuleContentAreaManager.SaveRuleContentAreaCollection(ruleCaCollection);
        }
Пример #4
0
        private void UpdateAccess(FunctionTypeAttribute functionTypeAttribute, PageType functionType)
        {
            int functionTypeID = functionType.ID;

            var functionAccessControlList = ManageAccessHandler.GetACLOfFunctionType(functionTypeID);

            ContentFunctionType.Load(functionTypeID);

            var defaultAccessControlList = ManageAccessHandler.LoadDefaultAccessFunctionType();

            foreach (var accessEntry in defaultAccessControlList.Where(a => functionAccessControlList.Exists(a.Key) == false).ToList())
            {
                functionAccessControlList.Add(accessEntry.Value);
            }

            ManageAccessHandler.SaveAccessFunctionType(functionAccessControlList, null, functionTypeID);
        }