Ejemplo n.º 1
0
        public void CanResolve_PossibleChildrenWithAuthorization()
        {
            PartsAdapter controller = dispatcher.ResolveAdapter <PartsAdapter>(pageItem);

            IEnumerable <ItemDefinition> items = controller.GetAllowedDefinitions(pageItem, CreatePrincipal("admin"));

            Assert.That(items.Count(), Is.EqualTo(7));

            items = controller.GetAllowedDefinitions(pageItem, CreatePrincipal("admin", "MyTestRole"));

            Assert.That(items.Count(), Is.EqualTo(8));
        }
Ejemplo n.º 2
0
        /// <summary>Gets part definitions that can be added to the given page.</summary>
        /// <param name="adapter"></param>
        /// <param name="item"></param>
        /// <param name="pageZones"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public static IEnumerable <ItemDefinition> GetPartDefinitions(PartsAdapter adapter, ContentItem item, IEnumerable <Zone> pageZones, IPrincipal user)
        {
            IEnumerable <ItemDefinition> availableDefinitions;

            if (pageZones == null)
            {
                availableDefinitions = adapter.GetAllowedDefinitions(item, user);
            }
            else
            {
                availableDefinitions = GetPossibleDefinitions(adapter, pageZones, user);
            }

            return(availableDefinitions
                   .OrderBy(d => d.SortOrder)
                   .ThenBy(d => d.Title));
        }
Ejemplo n.º 3
0
        /// <summary>Gets part definitions that can be added to the given page.</summary>
        /// <param name="adapter"></param>
        /// <param name="item"></param>
        /// <param name="pageZones"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public static IEnumerable <ItemDefinition> GetPartDefinitions(PartsAdapter adapter, ContentItem item, IEnumerable <Zone> pageZones, IPrincipal user)
        {
            IEnumerable <ItemDefinition> availableDefinitions;

            if (pageZones == null)
            {
                availableDefinitions = adapter.GetAllowedDefinitions(item, user);
            }
            else
            {
                availableDefinitions = GetPossibleDefinitions(adapter, pageZones, user);
            }

            return(from x in availableDefinitions
                   orderby x ascending, x.Title ascending
                   select x);
        }
Ejemplo n.º 4
0
        /// <summary>Gets part definitions that can be added to the given page.</summary>
        /// <param name="adapter"></param>
        /// <param name="item"></param>
        /// <param name="pageZones"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public static IEnumerable <ItemDefinition> GetPartDefinitions(PartsAdapter adapter, ContentItem item, IEnumerable <Zone> pageZones, IPrincipal user)
        {
            IEnumerable <ItemDefinition> availableDefinitions;

            if (pageZones == null)
            {
                availableDefinitions = adapter.GetAllowedDefinitions(item, user);
            }
            else
            {
                availableDefinitions = GetPossibleDefinitions(adapter, pageZones, user);
            }

            var sortedDefinitions = new List <ItemDefinition>();

            sortedDefinitions.AddRange(availableDefinitions);
            sortedDefinitions.Sort();
            return(sortedDefinitions);
        }
Ejemplo n.º 5
0
        protected override void CreateItems(Control container)
        {
            if (State.IsFlagSet(ControlPanelState.DragDrop) && (AllowExternalManipulation || CurrentItem == CurrentPage || Find.ClosestPage(CurrentItem) == CurrentPage))
            {
                if (ZoneName.IndexOfAny(new[] { '.', ',', ' ', '\'', '"', '\t', '\r', '\n' }) >= 0)
                {
                    throw new N2Exception("Zone '" + ZoneName + "' contains illegal characters.");
                }

                Panel zoneContainer = AddPanel(this, ZoneName + " dropZone");
                if (CurrentItem.ID != 0 && !CurrentItem.VersionOf.HasValue)
                {
                    zoneContainer.Attributes[PartUtilities.PathAttribute] = CurrentItem.Path;
                }
                else
                {
                    zoneContainer.Attributes[PartUtilities.PathAttribute] = Find.ClosestPage(CurrentItem).Path;
                    zoneContainer.Attributes["data-versionKey"]           = CurrentItem.GetVersionKey();
                    zoneContainer.Attributes["data-versionIndex"]         = CurrentItem.VersionIndex.ToString();
                }
                zoneContainer.Attributes[PartUtilities.ZoneAttribute]    = ZoneName;
                zoneContainer.Attributes[PartUtilities.AllowedAttribute] = PartUtilities.GetAllowedNames(ZoneName, PartsAdapter.GetAllowedDefinitions(CurrentItem, ZoneName, Page.User));

                zoneContainer.ToolTip = GetToolTip(GetDefinition(CurrentItem), ZoneName);
                base.CreateItems(zoneContainer);
            }
            else
            {
                base.CreateItems(this);
            }
        }