感觉跟之前版本区别不是很大,先记录下。

1. 首先在sitemap.config 文件里添加菜单。

<siteMapNode SystemName="SystemManage" nopResource="系统管理" PermissionNames="per_sys_role,per_sys_permission,per_sys_user" IconClass="fa-line-chart">
<siteMapNode SystemName="sys_role" nopResource="角色管理" PermissionNames="per_sys_role" controller="SystemManage" action="Role" IconClass="fa-dot-circle-o"/>
<siteMapNode SystemName="sys_permission" nopResource="权限管理" PermissionNames="per_sys_permission" controller="SystemManage" action="Permission" IconClass="fa-dot-circle-o"/>
<siteMapNode SystemName="sys_user" nopResource="用户管理" PermissionNames="per_sys_user" controller="SystemManage" action="User" IconClass="fa-dot-circle-o"/>
</siteMapNode>

2. 然后在数据库PermissionRecord表里添加该菜单。

3. 还需要在 Nop.Services.Security.StandardPermissionProvider.cs  文件里添加权限记录

public static readonly PermissionRecord per_sys_role = new PermissionRecord { Name = "Admin area. Manage system", SystemName = "per_sys_role", Category = "SystemManage" };
public static readonly PermissionRecord per_sys_permission = new PermissionRecord { Name = "Admin area. Manage system", SystemName = "per_sys_permission", Category = "SystemManage" };
public static readonly PermissionRecord per_sys_user = new PermissionRecord { Name = "Admin area. Manage system", SystemName = "per_sys_user", Category = "SystemManage" };
public virtual IEnumerable<PermissionRecord> GetPermissions()
{
return new[]
{
AccessAdminPanel,
AllowCustomerImpersonation,
ManageProducts,
ManageCategories,
ManageManufacturers,
ManageProductReviews,
ManageProductTags,
ManageAttributes,
ManageCustomers,
ManageVendors,
ManageCurrentCarts,
ManageOrders,
ManageRecurringPayments,
ManageGiftCards,
ManageReturnRequests,
OrderCountryReport,
ManageAffiliates,
ManageCampaigns,
ManageDiscounts,
ManageNewsletterSubscribers,
ManagePolls,
ManageNews,
ManageBlog,
ManageWidgets,
ManageTopics,
ManageForums,
ManageMessageTemplates,
ManageCountries,
ManageLanguages,
ManageSettings,
ManagePaymentMethods,
ManageExternalAuthenticationMethods,
ManageTaxSettings,
ManageShippingSettings,
ManageCurrencies,
ManageActivityLog,
ManageAcl,
ManageEmailAccounts,
ManageStores,
ManagePlugins,
ManageSystemLog,
ManageMessageQueue,
ManageMaintenance,
HtmlEditorManagePictures,
ManageScheduleTasks,
DisplayPrices,
EnableShoppingCart,
EnableWishlist,
PublicStoreAllowNavigation,
AccessClosedStore,
per_sys_role,
per_sys_permission,
per_sys_user
};
}
/// <summary>
/// Get default permissions
/// </summary>
/// <returns>Permissions</returns>
public virtual HashSet<(string systemRoleName, PermissionRecord[] permissions)> GetDefaultPermissions()
{
return new HashSet<(string, PermissionRecord[])>
{
(
NopCustomerDefaults.AdministratorsRoleName,
new[]
{
AccessAdminPanel,
AllowCustomerImpersonation,
ManageProducts,
ManageCategories,
ManageManufacturers,
ManageProductReviews,
ManageProductTags,
ManageAttributes,
ManageCustomers,
ManageVendors,
ManageCurrentCarts,
ManageOrders,
ManageRecurringPayments,
ManageGiftCards,
ManageReturnRequests,
OrderCountryReport,
ManageAffiliates,
ManageCampaigns,
ManageDiscounts,
ManageNewsletterSubscribers,
ManagePolls,
ManageNews,
ManageBlog,
ManageWidgets,
ManageTopics,
ManageForums,
ManageMessageTemplates,
ManageCountries,
ManageLanguages,
ManageSettings,
ManagePaymentMethods,
ManageExternalAuthenticationMethods,
ManageTaxSettings,
ManageShippingSettings,
ManageCurrencies,
ManageActivityLog,
ManageAcl,
ManageEmailAccounts,
ManageStores,
ManagePlugins,
ManageSystemLog,
ManageMessageQueue,
ManageMaintenance,
HtmlEditorManagePictures,
ManageScheduleTasks,
DisplayPrices,
EnableShoppingCart,
EnableWishlist,
PublicStoreAllowNavigation,
AccessClosedStore,
per_sys_role,
per_sys_permission,
per_sys_user
}
),
(
NopCustomerDefaults.ForumModeratorsRoleName,
new[]
{
DisplayPrices,
EnableShoppingCart,
EnableWishlist,
PublicStoreAllowNavigation
}
),
(
NopCustomerDefaults.GuestsRoleName,
new[]
{
DisplayPrices,
EnableShoppingCart,
EnableWishlist,
PublicStoreAllowNavigation
}
),
(
NopCustomerDefaults.RegisteredRoleName,
new[]
{
DisplayPrices,
EnableShoppingCart,
EnableWishlist,
PublicStoreAllowNavigation
}
),
(
NopCustomerDefaults.VendorsRoleName,
new[]
{
AccessAdminPanel,
ManageProducts,
ManageProductReviews,
ManageOrders
}
)
};
}

4. 配置角色和权限记录表的关系,可在admin界面里操作。

nop4.3 admin中添加新菜单的更多相关文章

  1. 在ECSHOP后台左侧导航中增加新菜单

    在ECSHOP后台左侧导航中增加新菜单 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-11-08   有个别高级用户(懂PHP的),提到这样的问题: 在后台管 ...

  2. 在ubuntu中添加新硬盘

    在ubuntu中添加新硬盘 转载于 http://www.cnblogs.com/unipower/archive/2009/03/08/1406230.html  前言 安装新硬盘这种事情并不会经常 ...

  3. 仅在TabControl中的Tab中添加右键菜单

    若想实现仅在TabControl中的Tab中添加右键菜单,可在XAML中通过使用样式得到: <TabControl> <TabControl.ItemContainerStyle&g ...

  4. 向CDH5集群中添加新的主机节点

    向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...

  5. (原)torch7中添加新的层

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6069627.html 参考网址: http://torch.ch/docs/developer-doc ...

  6. gitignore文件中添加新过滤文件,但是此文件已经提交,如何解决?

    gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决? 第一步,为避免冲突需要先同步下远程仓库 git pull 第二步,在本地项目目录下删除缓存 git rm -r --ca ...

  7. C# 往Datatable中添加新行的步骤

    以一个实例说明 //录入年份绑定 public void YearList(FineUIPro.DropDownList ddlYear) { //年份从15年到当前年//起止年份 ; int yea ...

  8. SqlServer表中添加新字段

    表中添加新字段ALTER TABLE 表名 ADD 字段名 VARCHAR(20) NULL 表中添加自增idalter table lianxi add id int primary key IDE ...

  9. Spring中添加新的配置表,并对新的配置表进行处理

    实习过程中boss交代的任务(以下出现的代码以及数据只给出小部分,提供一个思路) 目的:Spring中添加新的配置表,并对新的配置表进行处理:替换的新的配置表要友好,同时保证替换前后功能不能发生变化. ...

  10. 向SQL Server 现有表中添加新列并添加描述.

    注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...

随机推荐

  1. pycharm 关闭符号自动补全

    insert pair bracket 是三种括号的自动补全 insert pair quote 是两种引号的自动补全

  2. sd 买送服务,自动带出销售订单行项目

    需要先配置自动带出一行行项目,然后增强代码里去修改带出来的数量,注意事务码的判断,不然影响程序效率 FV45PF0N_NATRAB_SELECTION IF SY-TCODE = 'VA03'. EL ...

  3. 如何用HP 39GS计算器画出双曲线图像

    1.双曲线标准方程和参数方程 2.计算器上的操作 1.打开APLET->Parametric->START 2.设置X1(T)=3/COS(T),X2(T)=4*TAN(T) 3.SHIF ...

  4. 区块链leveldb数据库安装

    一.首先,需要在电脑上安装boost库. 下载地址在这里,下载压缩包之后解压,Index of main/release/1.79.0/source. 解压完成后在解压好的文件夹里面进入cmd,之后运 ...

  5. Nodejs杀死本地应用(win)

    windows端nodejs检查应用运行并杀死. import {exec, execSync} from "child_process" import {decode} from ...

  6. 用例需注意的点-UI自动化

    记几条--用例注意事项:用例从功能里面转化而来,并且不能脱离业务(针对某一个页面功能\某一个流程业务,写一条用例:即将界面操作间接转化为代码去操作!)1用例要尽量独立,相互不影响!(单独一条都可运行) ...

  7. SVN 之切换账号

    简单来说两步就搞定了 第一步删除已缓存的数据 第二步输入要切换账号密码 具体步骤图解如下: 第一步: 点击TortoiseSVN 找到设置  点击已保存数据 点击清除全部 再点击确定 第二步: 点击s ...

  8. springcloud 整合email的坑(Unrecognized SSL message, plaintext connection?)

    springcloud整合email真的是搞得我脑壳痛,因为我需要注册的时候通过rabbitmq给用户发一封邮件,因为这个报错的原因导致我mq一直监听失败然后就开始了循环发消息,这就导致邮箱一直在不停 ...

  9. 安全测试-WEB安全渗透测试基础知识(二)

    1.2. 计算机网络 1.2.1. 计算机通信网的组成 计算机网络由通信子网和资源子网组成. 其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制.流量控制.路由选择.网络互连等. 其中资源 ...

  10. iOS开发之权限申请说明key

    我们申请不同的权限需要对应的key,在info.plist内加上对用户的提示语 麦克风权限 NSMicrophoneUsageDescription 相机权限 NSCameraUsageDescrip ...