Drupal 6 向特定角色授予一个模块页面的权限

发布于 2024-12-17 09:13:54 字数 268 浏览 0 评论 0原文

我有一个模块可以创建多个 admin/settings/modname 页面。

我创建了一个新角色。

我希望该角色只能访问一个特定页面,例如 admin/setting/modname/custom1

我该如何为该角色分配仅对该页面的访问权限?

这可以在我的访问参数下的hook_menu下完成吗?

现在,该角色在所有页面上都被拒绝访问。

I have a module that creates several admin/settings/modname pages.

I created a new role.

I want this role to only be able to access one specific page, say admin/setting/modname/custom1

How would I go about assigning access right only to that page to this role?

Would this be done under my hook_menu under access arguments?

Right now, the role gets Access Denied on all pages.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北方的巷 2024-12-24 09:13:54

您可以实现 hook_perm 为您的模块提供一组自定义权限:

function mymodule_perm() {
  return array('my module permission');
}

然后在 hook_menu 的菜单项中使用访问参数建议:

function mymodule_menu() {
  $items['admin/setting/modname/custom1'] = array(
    'title' => 'Settings',
    'page callback' => 'mymodule_callback',
    'access arguments' => array('my module permission')
  );

  return $items;
}

一旦您安装了模块/清除了 Drupal 的缓存,请转到权限管理页面并将新权限授予所需的角色,并且具有该角色的用户(理论上)将能够访问它。

我说“理论上”是因为如果您的路径位于 admin/ 下,那么该角色还需要 访问管理页面 权限才能查看该页面,这会引入潜在的风险安全问题。最好的选择是将路径更改为 admin/ 之外的其他位置,以避免处理此问题。

You can implement hook_perm to provide a set of custom permissions for your module:

function mymodule_perm() {
  return array('my module permission');
}

And then in your menu item in hook_menu use the access arguments as you suggest:

function mymodule_menu() {
  $items['admin/setting/modname/custom1'] = array(
    'title' => 'Settings',
    'page callback' => 'mymodule_callback',
    'access arguments' => array('my module permission')
  );

  return $items;
}

Once you've installed your module/cleared Drupal's caches go to the permissions admin page and grant your new permission to the required role and users with that role will (in theory) be able to access it.

I say "in theory" because if your path resides under admin/ then the role will also need the access administration pages permission in order to view the page, which would introduce potential security issues. Your best bet would be to change the path to somewhere other than admin/ to avoid having to deal with this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文