Beispiel #1
0
        /// <summary>
        /// Generates the bread crumbs.
        /// </summary>
        /// <param name="action">The action.</param>
        /// <param name="addHomepageAction">A value indicating the homepage's action will be added to the collection.</param>
        public void Generate(Action action, bool addHomepageAction)
        {
            this.Clear();

            UserContext user             = UserContext.Current;
            IList       actionIdList     = null;
            bool        isFrameworkAdmin = false;
            bool        isAuthenticated  = false;

            if (user != null)
            {
                actionIdList     = user.ActionIdList;
                isAuthenticated  = true;
                isFrameworkAdmin = (user.IsFrameworkAdministrator && (user.OrganizationId == Guid.Empty));
            }

            Action item = action;

            while (item != null && item.ActionId != ActionProvider.PagesAndControlsActionId && item.ActionId != ActionProvider.GlobalNavigationLinksActionId)
            {
                if ((!item.GroupInDetailMenu) && (ActionProvider.ShowAction(item, actionIdList, isFrameworkAdmin, isAuthenticated)))
                {
                    Insert(0, item);
                }
                item = item.ParentAction;
            }

            if (addHomepageAction)
            {
                this.AddHomePageAction();
            }
        }
Beispiel #2
0
        private void BuildMenus()
        {
            ActionCollection allItems = (this.DataSource as ActionCollection);

            if (allItems == null)
            {
                if ((this.ParentAction == null) || (this.ParentAction.ActionType != ActionType.Page))
                {
                    return;
                }

                allItems = m_ParentAction.GetAvailableChildActions(m_ActionIdList, m_IsFrameworkAdmin, m_IsAuthenticated);

                bool flag = false;
                if (MasterPage != null)
                {
                    flag = (MasterPage.IsHomepage && ((!MasterPage.VisibleMainMenu) || allItems.Count == 0));
                }

                if (flag || (this.VisibleSiblingItems.HasValue && this.VisibleSiblingItems.Value))
                {
                    ActionCollection siblingActions = new ActionCollection();
                    foreach (Micajah.Common.Bll.Action item in ActionProvider.PagesAndControls.GetAvailableSiblingActions(m_ParentAction))
                    {
                        if (ActionProvider.ShowAction(item, m_ActionIdList, m_IsFrameworkAdmin, m_IsAuthenticated))
                        {
                            siblingActions.Add(item);
                        }
                    }
                    allItems.AddRange(siblingActions);
                }
            }

            if (allItems != null)
            {
                foreach (Micajah.Common.Bll.Action item in allItems)
                {
                    if (item.ShowInDetailMenu)
                    {
                        m_PrimaryMenuItems.Add(item);
                    }
                    else
                    {
                        m_OtherMenuItems.Add(item);
                    }
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Gets a collection of the visible child actions, also taking into consideration the access rights.
        /// </summary>
        internal ActionCollection GetAvailableChildActions(IList actionIdList, bool isFrameworkAdmin, bool isAuthenticated)
        {
            ActionCollection coll = new ActionCollection();

            foreach (Action item in this.ChildActions)
            {
                if (item.Visible)
                {
                    if (!ActionProvider.ShowAction(item, actionIdList, isFrameworkAdmin, isAuthenticated))
                    {
                        continue;
                    }

                    if (item.AccessDenied())
                    {
                        continue;
                    }

                    coll.Add(item);
                }
            }
            return(coll);
        }