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)); }
/// <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)); }
/// <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); }
/// <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); }
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); } }