using System; using Telligent.Evolution.Api.Content; using Telligent.Evolution.Extensibility.Api.Entities.Version1; using Telligent.Evolution.Extensibility.Content.Version1; using Telligent.Evolution.Extensibility.Security.Version1; namespace Samples { public class SamplePermissions : IPermissionRegistrar { #region IPlugin public string Name { get { return "Sample Permissions"; } } public string Description { get { return "This plugin will demo how the IPermissionRegistrar works"; } } public void Initialize() { //No initialization required for IPermissionRegistrar } #endregion #region IPermissionRegistrar public void RegisterPermissions(IPermissionRegistrarController permissionController) { permissionController.Register(new SamplePermission( new Guid("29547B66-9D04-4659-A010-5A861A0CBFCC"), "Create Content", "Enables users to create content.", ContentTypes.GenericContent, new PermissionConfiguration { Joinless = new JoinlessGroupPermissionConfiguration { Administrators = true, Owners = true }, PublicOpen = new MembershipGroupPermissionConfiguration { Owners = true }, PublicClosed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateListed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateUnlisted = new MembershipGroupPermissionConfiguration { Owners = true }, })); permissionController.Register(new SamplePermission( new Guid("E95D35C4-9463-478A-AE2E-C1361B9B6162"), "Delete Content", "Enables users to delete content.", ContentTypes.GenericContent, new PermissionConfiguration { Joinless = new JoinlessGroupPermissionConfiguration { Administrators = true, Owners = true }, PublicOpen = new MembershipGroupPermissionConfiguration { Owners = true }, PublicClosed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateListed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateUnlisted = new MembershipGroupPermissionConfiguration { Owners = true }, })); permissionController.Register(new SamplePermission( new Guid("0A26505B-BFE4-43DF-AF11-7A2E7D023B50"), "Edit Content", "Enables users to edit content.", ContentTypes.GenericContent, new PermissionConfiguration { Joinless = new JoinlessGroupPermissionConfiguration { Administrators = true, Owners = true }, PublicOpen = new MembershipGroupPermissionConfiguration { Owners = true }, PublicClosed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateListed = new MembershipGroupPermissionConfiguration { Owners = true }, PrivateUnlisted = new MembershipGroupPermissionConfiguration { Owners = true }, })); } #endregion } public class SamplePermission : IPermission { public SamplePermission(Guid id, string name, string description, Guid applicationTypeId, PermissionConfiguration defaultConfiguration) { Id = id; Name = name; Description = description; ApplicationTypeId = applicationTypeId; DefaultConfiguration = defaultConfiguration; } public Guid Id { get; private set; } public string Name { get; private set; } public string Description { get; private set; } public Guid ApplicationTypeId { get; private set; } public PermissionConfiguration DefaultConfiguration { get; private set; } } }