Browse Source

Merge pull request #7884 from abpframework/maliming/Apply-RequiredPermissionName

Use RequiredPermissionName for all ApplicationMenuItem & ToolbarItem.
pull/7906/head
liangshiwei 6 years ago
committed by GitHub
parent
commit
4fceda3107
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs
  2. 2
      framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs
  3. 17
      modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminMenuContributor.cs
  4. 13
      modules/docs/src/Volo.Docs.Admin.Web/Navigation/DocsMenuContributor.cs
  5. 29
      modules/identity/src/Volo.Abp.Identity.Web/Navigation/AbpIdentityWebMainMenuContributor.cs
  6. 11
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Navigation/AbpTenantManagementWebMainMenuContributor.cs

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Toolbars/ToolbarManager.cs

@ -52,7 +52,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars
if (requiredPermissionItems.Any())
{
var permissionChecker = serviceProvider.GetRequiredService<IPermissionChecker>();
var grantResult = await permissionChecker.IsGrantedAsync(requiredPermissionItems.Select(x => x.RequiredPermissionName).ToArray());
var grantResult = await permissionChecker.IsGrantedAsync(requiredPermissionItems.Select(x => x.RequiredPermissionName).Distinct().ToArray());
var toBeDeleted = new HashSet<ToolbarItem>();
foreach (var item in requiredPermissionItems)

2
framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/MenuManager.cs

@ -51,7 +51,7 @@ namespace Volo.Abp.UI.Navigation
if (requiredPermissionItems.Any())
{
var permissionChecker = serviceProvider.GetRequiredService<IPermissionChecker>();
var grantResult = await permissionChecker.IsGrantedAsync(requiredPermissionItems.Select(x => x.RequiredPermissionName).ToArray());
var grantResult = await permissionChecker.IsGrantedAsync(requiredPermissionItems.Select(x => x.RequiredPermissionName).Distinct().ToArray());
var toBeDeleted = new HashSet<ApplicationMenuItem>();
foreach (var menu in requiredPermissionItems)

17
modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminMenuContributor.cs

@ -14,22 +14,17 @@ namespace Volo.Blogging.Admin
}
}
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
private Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{
var l = context.GetLocalizer<BloggingResource>();
if (await context.IsGrantedAsync(BloggingPermissions.Blogs.Management))
{
var managementRootMenuItem = new ApplicationMenuItem("BlogManagement", l["Menu:BlogManagement"]);
var managementRootMenuItem = new ApplicationMenuItem("BlogManagement", l["Menu:BlogManagement"], requiredPermissionName: BloggingPermissions.Blogs.Management);
//TODO: Using the same permission. Reconsider.
if (await context.IsGrantedAsync(BloggingPermissions.Blogs.Management))
{
managementRootMenuItem.AddItem(new ApplicationMenuItem("BlogManagement.Blogs", l["Menu:Blogs"], "~/Blogging/Admin/Blogs"));
}
managementRootMenuItem.AddItem(new ApplicationMenuItem("BlogManagement.Blogs", l["Menu:Blogs"], "~/Blogging/Admin/Blogs", requiredPermissionName: BloggingPermissions.Blogs.Management));
context.Menu.GetAdministration().AddItem(managementRootMenuItem);
}
context.Menu.GetAdministration().AddItem(managementRootMenuItem);
return Task.CompletedTask;
}
}
}

13
modules/docs/src/Volo.Docs.Admin.Web/Navigation/DocsMenuContributor.cs

@ -17,7 +17,7 @@ namespace Volo.Docs.Admin.Navigation
}
}
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
private Task ConfigureMainMenuAsync(MenuConfigurationContext context)
{
var administrationMenu = context.Menu.GetAdministration();
@ -27,15 +27,10 @@ namespace Volo.Docs.Admin.Navigation
administrationMenu.AddItem(rootMenuItem);
if (await context.IsGrantedAsync(DocsAdminPermissions.Projects.Default))
{
rootMenuItem.AddItem(new ApplicationMenuItem(DocsMenuNames.Projects, l["Menu:ProjectManagement"], "~/Docs/Admin/Projects"));
}
rootMenuItem.AddItem(new ApplicationMenuItem(DocsMenuNames.Projects, l["Menu:ProjectManagement"], "~/Docs/Admin/Projects", requiredPermissionName: DocsAdminPermissions.Projects.Default));
rootMenuItem.AddItem(new ApplicationMenuItem(DocsMenuNames.Documents, l["Menu:DocumentManagement"], "~/Docs/Admin/Documents", requiredPermissionName: DocsAdminPermissions.Documents.Default));
if (await context.IsGrantedAsync(DocsAdminPermissions.Documents.Default))
{
rootMenuItem.AddItem(new ApplicationMenuItem(DocsMenuNames.Documents, l["Menu:DocumentManagement"], "~/Docs/Admin/Documents"));
}
return Task.CompletedTask;
}
}
}

29
modules/identity/src/Volo.Abp.Identity.Web/Navigation/AbpIdentityWebMainMenuContributor.cs

@ -9,35 +9,22 @@ namespace Volo.Abp.Identity.Web.Navigation
{
public class AbpIdentityWebMainMenuContributor : IMenuContributor
{
public virtual async Task ConfigureMenuAsync(MenuConfigurationContext context)
public virtual Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name != StandardMenus.Main)
{
return;
return Task.CompletedTask;
}
var hasRolePermission = await context.IsGrantedAsync(IdentityPermissions.Roles.Default);
var hasUserPermission = await context.IsGrantedAsync(IdentityPermissions.Users.Default);
var l = context.GetLocalizer<IdentityResource>();
if (hasRolePermission || hasUserPermission)
{
var administrationMenu = context.Menu.GetAdministration();
var l = context.GetLocalizer<IdentityResource>();
var identityMenuItem = new ApplicationMenuItem(IdentityMenuNames.GroupName, l["Menu:IdentityManagement"], icon: "fa fa-id-card-o");
identityMenuItem.AddItem(new ApplicationMenuItem(IdentityMenuNames.Roles, l["Roles"], url: "~/Identity/Roles", requiredPermissionName: IdentityPermissions.Roles.Default));
identityMenuItem.AddItem(new ApplicationMenuItem(IdentityMenuNames.Users, l["Users"], url: "~/Identity/Users", requiredPermissionName: IdentityPermissions.Users.Default));
var identityMenuItem = new ApplicationMenuItem(IdentityMenuNames.GroupName, l["Menu:IdentityManagement"], icon: "fa fa-id-card-o");
administrationMenu.AddItem(identityMenuItem);
context.Menu.GetAdministration().AddItem(identityMenuItem);
if (hasRolePermission)
{
identityMenuItem.AddItem(new ApplicationMenuItem(IdentityMenuNames.Roles, l["Roles"], url: "~/Identity/Roles"));
}
if (hasUserPermission)
{
identityMenuItem.AddItem(new ApplicationMenuItem(IdentityMenuNames.Users, l["Users"], url: "~/Identity/Users"));
}
}
return Task.CompletedTask;
}
}
}

11
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Navigation/AbpTenantManagementWebMainMenuContributor.cs

@ -9,11 +9,11 @@ namespace Volo.Abp.TenantManagement.Web.Navigation
{
public class AbpTenantManagementWebMainMenuContributor : IMenuContributor
{
public virtual async Task ConfigureMenuAsync(MenuConfigurationContext context)
public virtual Task ConfigureMenuAsync(MenuConfigurationContext context)
{
if (context.Menu.Name != StandardMenus.Main)
{
return;
return Task.CompletedTask;
}
var administrationMenu = context.Menu.GetAdministration();
@ -23,10 +23,9 @@ namespace Volo.Abp.TenantManagement.Web.Navigation
var tenantManagementMenuItem = new ApplicationMenuItem(TenantManagementMenuNames.GroupName, l["Menu:TenantManagement"], icon: "fa fa-users");
administrationMenu.AddItem(tenantManagementMenuItem);
if (await context.IsGrantedAsync(TenantManagementPermissions.Tenants.Default))
{
tenantManagementMenuItem.AddItem(new ApplicationMenuItem(TenantManagementMenuNames.Tenants, l["Tenants"], url: "~/TenantManagement/Tenants"));
}
tenantManagementMenuItem.AddItem(new ApplicationMenuItem(TenantManagementMenuNames.Tenants, l["Tenants"], url: "~/TenantManagement/Tenants", requiredPermissionName: TenantManagementPermissions.Tenants.Default));
return Task.CompletedTask;
}
}
}

Loading…
Cancel
Save