簡體   English   中英

Drupal菜單權限問題

[英]Drupal menu permissions question

我正在為我的客戶端創建一個管理模塊,使他們可以訪問有關其內容的某些管理功能。 我首先通過實現hook_perm在模塊中添加一些權限:

function mymodule_perm() 
{
    return array(
        'manage projects',
    );
}

然后,我可以通過添加到已經存在的管理部分來創建菜單:

function mymodule_menu() 
{
    $items['admin/projects'] = array(
        'title' => 'Projects',
        'description' => 'Manage your projects.',
        'page callback' => 'manage_projects_overview',
        'access callback' => 'user_access',
        'access arguments' => array('manage projects'),
        'type' => MENU_NORMAL_ITEM,
        'weight' => -100,
    );

    $items['admin/projects/add'] = array(
        'title' => 'Add project',
        'access arguments' => array('manage projects'),
        'page callback' => 'mymodule_projects_add',
        'type' => MENU_NORMAL_ITEM,
        'weight' => 1,
    );

    return $items;
}

這會將“ 項目”部分添加到“管理”區域,並帶有“ 添加項目”子部分。 都好。

我想要的行為是,我的客戶只能在登錄時看到“項目”部分。我通過在模塊的“權限”部分中為已認證用戶勾選“管理項目”權限來完成此操作。 現在,要讓我的客戶實際訪問“管理”區域,我還需要在“用戶權限”部分的“系統模塊”下打勾“訪問管理頁面”。 當我以客戶身份登錄時,此方法非常有用,我只能在“管理”區域中看到“ 項目”部分。 不過有一件事,在左欄中顯示的“導航”菜單中,我可以看到以下各項:

- Administer
   - Projects
   - Content management
   - Site building
   - Site configuration
   - User management

我只希望看到Administer和Projects項目,而不希望其他項目。 當我單擊“內容管理”時,我得到一個內容管理標題頁面,沒有小節。 站點建設,站點配置和用戶管理相同。 真正奇怪的是沒有顯示“報告”,這也是“管理”的頂層。

為什么未顯示“我的項目”部分中的這些其他項目?如果我未以管理員身份登錄,又如何使它們停止顯示?

您的問題是允許他們查看這些頁面。

在系統模塊的hook_menu

$items['admin/build'] = array(
  'title' => 'Site building',
  'description' => 'Control how your site looks and feels.',
  'position' => 'right',
  'weight' => -10,
  'page callback' => 'system_admin_menu_block_page',
  'access arguments' => array('access administration pages'),
  'file' => 'system.admin.inc',
);

因此,當您向他們提供access administration pages ,便向他們提供了“網站建設”部分的訪問權限,但其中沒有任何內容。 解決此問題的快速方法是:

  • 使用hook_menu_alter可以將那些菜單項的訪問設置更改為他們無權訪問的菜單。 制作自己的燙發或使用現有的燙發。
  • 您也可以使用主題隱藏項目。

我不確定為什么菜單路由器會顯示這些。 但我也許可以幫忙...

為什么不將路徑更改為以下內容:

projects/add  
projects/%/edit

這類似於節點模塊的菜單掛鈎。 可能不是您要找的東西,但是如果您不希望這些用戶訪問管理資料,則可能是正確的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM