Files
mixtape/zero.Core/Api/PermissionsApi.cs
T

92 lines
4.3 KiB
C#

using System.Collections.Generic;
using zero.Core.Entities;
using zero.Core.Identity;
using zero.Core.Options;
namespace zero.Core.Api
{
public class PermissionsApi : IPermissionsApi
{
protected IZeroOptions Options { get; set; }
public PermissionsApi(IZeroOptions options)
{
Options = options;
}
/// <inheritdoc />
public IList<PermissionCollection> GetAll()
{
IList<PermissionCollection> result = new List<PermissionCollection>();
PermissionCollection permissionSections = new PermissionCollection()
{
Alias = Constants.PermissionCollections.Sections,
Label = "@permission.collections.sections",
Description = "@permission.collections.sections_description"
};
permissionSections.Items.Add(new Permission(Permissions.Sections.Dashboard, "@sections.item.dashboard", null, PermissionValueType.Boolean));
permissionSections.Items.Add(new Permission(Permissions.Sections.Pages, "@sections.item.pages", null, PermissionValueType.Boolean));
permissionSections.Items.Add(new Permission(Permissions.Sections.Spaces, "@sections.item.spaces", null, PermissionValueType.Boolean));
permissionSections.Items.Add(new Permission(Permissions.Sections.Media, "@sections.item.media", null, PermissionValueType.Boolean));
permissionSections.Items.Add(new Permission(Permissions.Sections.Settings, "@sections.item.settings", null, PermissionValueType.Boolean));
result.Add(permissionSections);
// TODO add back spaces
IReadOnlyCollection<Space> spaces = Options.Spaces.GetAllItems();
if (spaces.Count > 0)
{
PermissionCollection permissionSpaces = new PermissionCollection()
{
Alias = Constants.PermissionCollections.Spaces,
Label = "@permission.collections.spaces",
Description = "@permission.collections.spaces_description"
};
foreach (Space space in spaces)
{
permissionSpaces.Items.Add(new Permission(Permissions.Spaces.PREFIX + space.Alias, space.Name, null, PermissionValueType.ReadWrite));
}
result.Add(permissionSpaces);
}
PermissionCollection permissionSettings = new PermissionCollection()
{
Alias = Constants.PermissionCollections.Settings,
Label = "@permission.collections.settings",
Description = "@permission.collections.settings_description"
};
permissionSettings.Items.Add(new Permission(Permissions.Settings.Updates, "@settings.system.updates.name", "@settings.system.updates.text_default", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Applications, "@settings.system.applications.name", "@settings.system.applications.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Users, "@settings.system.users.name", "@settings.system.users.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Languages, "@settings.system.languages.name", "@settings.system.languages.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Countries, "@settings.system.countries.name", "@settings.system.countries.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Translations, "@settings.system.translations.name", "@settings.system.translations.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Logging, "@settings.system.logs.name", "@settings.system.logs.text", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.Plugins, "@settings.plugins.installed.name", "@settings.plugins.installed.text_default", PermissionValueType.ReadWrite));
permissionSettings.Items.Add(new Permission(Permissions.Settings.CreatePlugin, "@settings.plugins.create.name", "@settings.plugins.create.text", PermissionValueType.ReadWrite));
result.Add(permissionSettings);
return result;
}
}
public interface IPermissionsApi
{
/// <summary>
/// Get all available permissions to choose from
/// </summary>
IList<PermissionCollection> GetAll();
}
}