using System.Collections.Generic; using Composite.C1Console.Security; using Composite.Plugins.Elements.ElementProviders.PageElementProvider; namespace Composite.Samples.CustomTreeControl.ElementProvider { [SecurityAncestorProvider(typeof(SubsiteManagerEntityTokenAncestorProvider))] public class SampleEntityToken : EntityToken { private string _id; private string _type; private string _source; public SampleEntityToken(string id, string type, string source = "") { _id = id; _type = type; _source = source; } public override string Id { get { return _id; } } public override string Serialize() { return DoSerialize(); } public override string Source { get { return _source; } } public override string Type { get { return _type; } } public static EntityToken Deserialize(string serializedData) { string type, source, id; DoDeserialize(serializedData, out type, out source, out id); return new SampleEntityToken(id, type, source); } } internal sealed class SubsiteManagerEntityTokenAncestorProvider : ISecurityAncestorProvider { public IEnumerable GetParents(EntityToken entityToken) { return new[] { new PageElementProviderEntityToken("PageElementProvider") }; } } }