【问题标题】:mean.js AngularJS Menus Service assigning roles to pagemean.js AngularJS 菜单服务为页面分配角色
【发布时间】:2025-12-31 06:05:06
【问题描述】:

我正在查看 meanjs,但无法将菜单设置为可用于特定用户角色。 根据文档http://meanjs.org/docs.html#menus

roles(可选;默认值:['user'])- 指示允许查看此菜单项的角色的数组。

我有一个名为tempstaff 的角色,我想访问特定页面。

我已经尝试了以下

Menus.addMenuItem('topbar', 'Talks', 'talks', 'dropdown', '/talks(/create)?', true,  ['tempstaff']);

阅读此问题的已接受答案mean.js menu isPublic not working

我尝试修改我的menus.client.services.js 文件,以便

this.addMenu('topbar');

成为

this.addMenu('topbar',true,  ['user']);

这适用于全局级别,因此如果我设置了用户,它允许具有user 角色的用户查看所有页面,或者如果我将其更改为tempstaff,那么tempstaff 用户可以查看所有页面,但它不支持 Menus.addMenuItem 中的覆盖。

如何实现这一点,以便我可以将某些页面设置为某些角色可以访问,而其他页面可以由其他角色访问?

【问题讨论】:

  • @MarcHarry 这个问题和你回答的关于meanjs菜单的问题很相似,你也遇到过这个问题吗?

标签: javascript angularjs mean-stack meanjs


【解决方案1】:

从文档中,

roles (默认: ['user']) - 一个数组,表示允许查看此菜单的角色

因此,您应该包括“用户”和“临时员工”作为可以访问菜单的可能角色。将您的代码更改为以下内容应该可以工作。

this.addMenu('topbar', true, ['user', 'tempstaff']);

【讨论】: