diff --git a/src/Orchard.Web/Core/Common/Permissions.cs b/src/Orchard.Web/Core/Common/Permissions.cs index c5b62e6c1..4a1e292ec 100644 --- a/src/Orchard.Web/Core/Common/Permissions.cs +++ b/src/Orchard.Web/Core/Common/Permissions.cs @@ -1,13 +1,12 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Core.Common { public class Permissions : IPermissionProvider { public static readonly Permission ChangeOwner = new Permission { Name = "ChangeOwner", Description = "Change the owner of content items" }; - public string ModuleName { - get { return "Common"; } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Core/Contents/Permissions.cs b/src/Orchard.Web/Core/Contents/Permissions.cs index f6e3f9773..a4b82e0e3 100644 --- a/src/Orchard.Web/Core/Contents/Permissions.cs +++ b/src/Orchard.Web/Core/Contents/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Core.Contents { @@ -12,11 +13,7 @@ namespace Orchard.Core.Contents { public static readonly Permission MetaListContent = new Permission { ImpliedBy = new[] { EditContent, PublishContent, DeleteContent } }; - public string ModuleName { - get { - return "Content"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new [] { diff --git a/src/Orchard.Web/Core/Navigation/Permissions.cs b/src/Orchard.Web/Core/Navigation/Permissions.cs index 2d7fbff63..056d0beaf 100644 --- a/src/Orchard.Web/Core/Navigation/Permissions.cs +++ b/src/Orchard.Web/Core/Navigation/Permissions.cs @@ -1,13 +1,12 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Core.Navigation { public class Permissions : IPermissionProvider { public static readonly Permission ManageMainMenu = new Permission { Name = "ManageMainMenu", Description = "Manage main menu" }; - public string ModuleName { - get { return "Navigation"; } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new[] { diff --git a/src/Orchard.Web/Core/Settings/Permissions.cs b/src/Orchard.Web/Core/Settings/Permissions.cs index 91fe4d3ff..b96cf1c3c 100644 --- a/src/Orchard.Web/Core/Settings/Permissions.cs +++ b/src/Orchard.Web/Core/Settings/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Core.Settings { @@ -6,9 +7,7 @@ namespace Orchard.Core.Settings { public static readonly Permission ManageSettings = new Permission { Name = "ManageSettings", Description = "Manage site settings" }; public static readonly Permission ChangeSuperuser = new Permission { Name = "ChangeSuperuser", Description = "Change the superuser for the site" }; - public string ModuleName { - get { return "Settings"; } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Permissions.cs index cefb98ca4..c55fdb2d9 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Permissions.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Blogs { @@ -16,11 +17,7 @@ namespace Orchard.Blogs { public static readonly Permission MetaListOthersBlogs = new Permission { ImpliedBy = new[] { EditOthersBlogPost, PublishOthersBlogPost, DeleteOthersBlogPost } }; public static readonly Permission MetaListBlogs = new Permission { ImpliedBy = new[] { EditBlogPost, PublishBlogPost, DeleteBlogPost } }; - public string ModuleName { - get { - return "Blogs"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Comments/Permissions.cs index f38226003..3f64c192d 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Permissions.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Comments { @@ -11,11 +12,7 @@ namespace Orchard.Comments { public static readonly Permission ManageComments = new Permission { Description = "Manage comments", Name = "ManageComments" }; public static readonly Permission ManageOthersComments = new Permission { Description = "Manage comments for others", Name = "ManageOthersComments" }; - public string ModuleName { - get { - return "Comments"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Permissions.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Permissions.cs index 9b0620aed..aa1aeaf26 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.ContentTypes { @@ -6,9 +7,7 @@ namespace Orchard.ContentTypes { public static readonly Permission CreateContentTypes = new Permission { Name = "CreateContentTypes", Description = "Create custom content types." }; public static readonly Permission EditContentTypes = new Permission { Name = "EditContentTypes", Description = "Edit content types." }; - public string ModuleName { - get { return "Contents"; } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new [] { diff --git a/src/Orchard.Web/Modules/Orchard.DevTools/Permissions.cs b/src/Orchard.Web/Modules/Orchard.DevTools/Permissions.cs index 47826f3bb..96b7ff8ac 100644 --- a/src/Orchard.Web/Modules/Orchard.DevTools/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.DevTools/Permissions.cs @@ -2,17 +2,14 @@ using System.Collections.Generic; using System.Linq; using System.Web; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.DevTools { public class Permissions : IPermissionProvider { public static readonly Permission DebugShowAllMenuItems = new Permission { Description = "DevTools: Show all menu items", Name = "DebugShowAllMenuItems" }; - public string ModuleName { - get { - return "DevTools"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Indexing/Permissions.cs index 33f8f86d1..1d3b2c870 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Permissions.cs @@ -1,15 +1,12 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Indexing { public class Permissions : IPermissionProvider { public static readonly Permission ManageSearchIndex = new Permission { Description = "Manage Search Index", Name = "ManageSearchIndex" }; - public string ModuleName { - get { - return "Indexing"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new[] { ManageSearchIndex }; diff --git a/src/Orchard.Web/Modules/Orchard.Media/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Media/Permissions.cs index 8f30785f0..3ddfcbd6f 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Media { @@ -6,11 +7,7 @@ namespace Orchard.Media { public static readonly Permission ManageMediaFiles = new Permission { Description = "Modifying Media Files", Name = "ManageMediaFiles" }; public static readonly Permission UploadMediaFiles = new Permission { Description = "Uploading Media Files", Name = "UploadMediaFiles", ImpliedBy = new[] { ManageMediaFiles } }; - public string ModuleName { - get { - return "Media"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Modules/Permissions.cs index 6a6d2cf42..2e7194bc4 100644 --- a/src/Orchard.Web/Modules/Orchard.Modules/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Modules/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Modules { @@ -6,9 +7,7 @@ namespace Orchard.Modules { public static readonly Permission ManageModules = new Permission { Description = "Manage Modules", Name = "ManageModules" }; public static readonly Permission ManageFeatures = new Permission { Description = "Manage Features", Name = "ManageFeatures", ImpliedBy = new[] {ManageModules}}; - public string ModuleName { - get { return "Modules"; } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new[] {ManageModules, ManageFeatures}; diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Permissions.cs b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Permissions.cs index 50bd38850..74cbb8fad 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Permissions.cs @@ -1,15 +1,12 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.MultiTenancy { public class Permissions : IPermissionProvider { public static readonly Permission ManageTenants = new Permission { Description = "Modifying Tenants of a Site", Name = "ManageTenants" }; - public string ModuleName { - get { - return "MultiTenancy"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new[] { diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Roles/Controllers/AdminController.cs index 4fe696199..23640c92a 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Controllers/AdminController.cs @@ -8,7 +8,6 @@ using Orchard.Roles.Models; using Orchard.Roles.Services; using Orchard.Roles.ViewModels; using Orchard.Security; -using Orchard.Security.Permissions; using Orchard.UI.Notify; namespace Orchard.Roles.Controllers { @@ -36,7 +35,7 @@ namespace Orchard.Roles.Controllers { if (!Services.Authorizer.Authorize(Permissions.ManageRoles, T("Not authorized to manage roles"))) return new HttpUnauthorizedResult(); - var model = new RolesIndexViewModel { Rows = _roleService.GetRoles() as IList }; + var model = new RolesIndexViewModel { Rows = _roleService.GetRoles().ToList() }; return View(model); } @@ -65,7 +64,7 @@ namespace Orchard.Roles.Controllers { if (!Services.Authorizer.Authorize(Permissions.ManageRoles, T("Not authorized to manage roles"))) return new HttpUnauthorizedResult(); - var model = new RoleCreateViewModel { ModulePermissions = _roleService.GetInstalledPermissions() }; + var model = new RoleCreateViewModel { FeaturePermissions = _roleService.GetInstalledPermissions() }; return View(model); } @@ -103,11 +102,11 @@ namespace Orchard.Roles.Controllers { throw new HttpException(404, "page with id " + id + " was not found"); } var model = new RoleEditViewModel { Name = role.Name, Id = role.Id, - ModulePermissions = _roleService.GetInstalledPermissions(), + FeaturePermissions = _roleService.GetInstalledPermissions(), CurrentPermissions = _roleService.GetPermissionsForRole(id)}; var simulation = UserSimulation.Create(role.Name); - model.EffectivePermissions = model.ModulePermissions + model.EffectivePermissions = model.FeaturePermissions .SelectMany(group => group.Value) .Where(permission => _authorizationService.TryCheckAccess(permission, simulation, null)) .Select(permission=>permission.Name) diff --git a/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs b/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs index 43909d2bf..1655886e4 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs @@ -4,11 +4,11 @@ namespace Orchard.Roles.DataMigrations { public class RolesDataMigration : DataMigrationImpl { public int Create() { - //CREATE TABLE Orchard_Roles_PermissionRecord (Id integer, Name TEXT, ModuleName TEXT, Description TEXT, primary key (Id)); + //CREATE TABLE Orchard_Roles_PermissionRecord (Id integer, Name TEXT, FeatureName TEXT, Description TEXT, primary key (Id)); SchemaBuilder.CreateTable("PermissionRecord", table => table .Column("Id", column => column.PrimaryKey().Identity()) .Column("Name") - .Column("ModuleName") + .Column("FeatureName") .Column("Description") ); diff --git a/src/Orchard.Web/Modules/Orchard.Roles/DefaultRoleUpdater.cs b/src/Orchard.Web/Modules/Orchard.Roles/DefaultRoleUpdater.cs index f7a4d2b6a..97252cc22 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/DefaultRoleUpdater.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/DefaultRoleUpdater.cs @@ -38,7 +38,7 @@ namespace Orchard.Roles { var featureName = feature.Descriptor.Name; // when another module is being enabled, locate matching permission providers - var providersForEnabledModule = _permissionProviders.Where(x => x.ModuleName == featureName); + var providersForEnabledModule = _permissionProviders.Where(x => x.Feature.Descriptor.Name == featureName); if (providersForEnabledModule.Any()) { Logger.Debug("Configuring default roles for module {0}", featureName); diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Models/PermissionRecord.cs b/src/Orchard.Web/Modules/Orchard.Roles/Models/PermissionRecord.cs index bc587f700..1441f5d0a 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Models/PermissionRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Models/PermissionRecord.cs @@ -2,7 +2,7 @@ public class PermissionRecord { public virtual int Id { get; set; } public virtual string Name { get; set; } - public virtual string ModuleName { get; set; } + public virtual string FeatureName { get; set; } public virtual string Description { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Roles/Permissions.cs index 95f05eb7c..ca349b7ec 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Permissions.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Roles { @@ -9,11 +10,7 @@ namespace Orchard.Roles { public static readonly Permission ManageRoles = new Permission { Description = "Create and manage roles", Name = "ManageRoles" }; public static readonly Permission ApplyRoles = new Permission { Description = "Assign users to roles", Name = "AssignUsersToRoles", ImpliedBy = new[] { ManageRoles } }; - public string ModuleName { - get { - return "Roles"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Services/RoleService.cs b/src/Orchard.Web/Modules/Orchard.Roles/Services/RoleService.cs index 714c10a96..e7cc0a63c 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Services/RoleService.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Services/RoleService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; using Orchard.Data; +using Orchard.Environment.Extensions.Models; using Orchard.Logging; using Orchard.Roles.Models; using Orchard.Security.Permissions; @@ -47,7 +48,7 @@ namespace Orchard.Roles.Services { _permissionRepository.Create(new PermissionRecord { Description = GetPermissionDescription(permissionName), Name = permissionName, - ModuleName = GetModuleName(permissionName) + FeatureName = GetFeatureName(permissionName) }); } RoleRecord roleRecord = GetRoleByName(roleName); @@ -65,7 +66,7 @@ namespace Orchard.Roles.Services { _permissionRepository.Create(new PermissionRecord { Description = GetPermissionDescription(permission), Name = permission, - ModuleName = GetModuleName(permission) + FeatureName = GetFeatureName(permission) }); } PermissionRecord permissionRecord = _permissionRepository.Get(x => x.Name == permission); @@ -73,11 +74,11 @@ namespace Orchard.Roles.Services { } } - private string GetModuleName(string permissionName) { + private string GetFeatureName(string permissionName) { foreach (var permissionProvider in _permissionProviders) { foreach (var permission in permissionProvider.GetPermissions()) { if (String.Equals(permissionName, permission.Name, StringComparison.OrdinalIgnoreCase)) { - return permissionProvider.ModuleName; + return permissionProvider.Feature.Descriptor.Name; } } } @@ -100,20 +101,22 @@ namespace Orchard.Roles.Services { } public IDictionary> GetInstalledPermissions() { - Dictionary> installedPermissions = new Dictionary>(); + var installedPermissions = new Dictionary>(); foreach (var permissionProvider in _permissionProviders) { - IEnumerable permissions = permissionProvider.GetPermissions(); - if (installedPermissions.ContainsKey(permissionProvider.ModuleName)) - installedPermissions[permissionProvider.ModuleName] = installedPermissions[permissionProvider.ModuleName].Concat(permissions); + var featureName = permissionProvider.Feature.Descriptor.Name; + var permissions = permissionProvider.GetPermissions(); + + if (installedPermissions.ContainsKey(featureName)) + installedPermissions[featureName] = installedPermissions[featureName].Concat(permissions); else - installedPermissions.Add(permissionProvider.ModuleName, permissions); + installedPermissions.Add(featureName, permissions); } return installedPermissions; } public IEnumerable GetPermissionsForRole(int id) { - List permissions = new List(); + var permissions = new List(); RoleRecord roleRecord = GetRole(id); foreach (RolesPermissionsRecord rolesPermission in roleRecord.RolesPermissions) { permissions.Add(rolesPermission.Permission.Name); diff --git a/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleCreateViewModel.cs b/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleCreateViewModel.cs index b786b6780..e3201d03e 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleCreateViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleCreateViewModel.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Orchard.Mvc.ViewModels; using Orchard.Security.Permissions; @@ -7,6 +7,6 @@ namespace Orchard.Roles.ViewModels { public class RoleCreateViewModel : BaseViewModel { [Required] public string Name { get; set; } - public IDictionary> ModulePermissions { get; set; } + public IDictionary> FeaturePermissions { get; set; } } } diff --git a/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleEditViewModel.cs b/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleEditViewModel.cs index 3bebc049e..8cd6e07e8 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleEditViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/ViewModels/RoleEditViewModel.cs @@ -8,7 +8,7 @@ namespace Orchard.Roles.ViewModels { public int Id { get; set; } [Required] public string Name { get; set; } - public IDictionary> ModulePermissions { get; set; } + public IDictionary> FeaturePermissions { get; set; } public IEnumerable CurrentPermissions { get; set; } public IEnumerable EffectivePermissions { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Create.aspx b/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Create.aspx index 6200b38fe..eb42b7975 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Create.aspx +++ b/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Create.aspx @@ -10,9 +10,9 @@
<%: T("Permissions") %> - <% foreach (var moduleName in Model.ModulePermissions.Keys) { %> + <% foreach (var featureName in Model.FeaturePermissions.Keys) { %>
- <%: T("{0} Module", moduleName) %> + <%: T("{0} Module", featureName) %> @@ -24,7 +24,7 @@ - <% foreach (var permission in Model.ModulePermissions[moduleName]) { %> + <% foreach (var permission in Model.FeaturePermissions[featureName]) { %> diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Edit.aspx b/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Edit.aspx index c8004378d..87476e314 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Edit.aspx +++ b/src/Orchard.Web/Modules/Orchard.Roles/Views/Admin/Edit.aspx @@ -11,9 +11,9 @@
<%: T("Permissions") %> - <% foreach (var moduleName in Model.ModulePermissions.Keys) { %> + <% foreach (var featureName in Model.FeaturePermissions.Keys) { %>
- <%: T("{0} Module", moduleName) %> + <%: T("{0} Feature", featureName) %>
<%: T("Allow") %>
<%: permission.Description %> "/>
@@ -26,7 +26,7 @@ - <% foreach (var permission in Model.ModulePermissions[moduleName]) { %> + <% foreach (var permission in Model.FeaturePermissions[featureName]) { %>
<%: T("Effective") %>
<%: permission.Description %> diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Tags/Permissions.cs index 481689369..164c92bd9 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Tags/Permissions.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Tags { @@ -8,11 +9,7 @@ namespace Orchard.Tags { public static readonly Permission CreateTag = new Permission { Description = "Create tag", Name = "CreateTag", ImpliedBy = new[] { ManageTags } }; public static readonly Permission ApplyTag = new Permission { Description = "Applying a Tag", Name = "ApplyTag", ImpliedBy = new[] { ManageTags, CreateTag } }; - public string ModuleName { - get { - return "Tags"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Themes/Permissions.cs index 3ae99df52..4a9f87209 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Permissions.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Themes { @@ -6,11 +7,7 @@ namespace Orchard.Themes { public static readonly Permission ManageThemes = new Permission { Description = "Manage Themes", Name = "ManageThemes" }; public static readonly Permission ApplyTheme = new Permission { Description = "Apply a Theme", Name = "ApplyTheme" }; - public string ModuleName { - get { - return "Themes"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard.Web/Modules/Orchard.Users/Permissions.cs b/src/Orchard.Web/Modules/Orchard.Users/Permissions.cs index 1c69eee28..e3e3695f2 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Permissions.cs +++ b/src/Orchard.Web/Modules/Orchard.Users/Permissions.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using JetBrains.Annotations; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Users { @@ -7,11 +8,7 @@ namespace Orchard.Users { public class Permissions : IPermissionProvider { public static readonly Permission ManageUsers = new Permission { Description = "Manage users", Name = "ManageUsers" }; - public string ModuleName { - get { - return "Users"; - } - } + public virtual Feature Feature { get; set; } public IEnumerable GetPermissions() { return new Permission[] { diff --git a/src/Orchard/Security/Permissions/IPermissionProvider.cs b/src/Orchard/Security/Permissions/IPermissionProvider.cs index f4f745336..072996ca6 100644 --- a/src/Orchard/Security/Permissions/IPermissionProvider.cs +++ b/src/Orchard/Security/Permissions/IPermissionProvider.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Orchard.Environment.Extensions.Models; namespace Orchard.Security.Permissions { /// @@ -6,7 +7,7 @@ namespace Orchard.Security.Permissions { /// the which may be granted /// public interface IPermissionProvider : IDependency { - string ModuleName { get; } + Feature Feature { get; } IEnumerable GetPermissions(); IEnumerable GetDefaultStereotypes(); } diff --git a/src/Orchard/Security/StandardPermissions.cs b/src/Orchard/Security/StandardPermissions.cs index b73f937a2..976ed5f48 100644 --- a/src/Orchard/Security/StandardPermissions.cs +++ b/src/Orchard/Security/StandardPermissions.cs @@ -1,4 +1,7 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Linq; +using Orchard.Environment.Extensions.Models; using Orchard.Security.Permissions; namespace Orchard.Security { @@ -6,10 +9,21 @@ namespace Orchard.Security { public static readonly Permission AccessAdminPanel = new Permission { Name = "AccessAdminPanel", Description = "Access admin panel" }; public static readonly Permission AccessFrontEnd = new Permission { Name = "AccessFrontEnd", Description = "Access site front-end" }; - public string ModuleName { + public Feature Feature { get { // This is a lie, but it enables the permissions and stereotypes to be created - return "Common"; + return new Feature { + Descriptor = new FeatureDescriptor { + Name = "Orchard.Framework", + Category = "Core", + Dependencies = Enumerable.Empty(), + Description = "", + Extension = new ExtensionDescriptor { + Name = "Orchard.Framework" + } + }, + ExportedTypes = Enumerable.Empty() + }; } }