0

私が理解していることから、私の問題は、私が(というより、私のクライアントが)Drupal の古いバージョン、具体的には Core 6.26 を実行していることです。追加の仕様に興味がある場合は、喜んで開示します。

というわけで、次のメニューフックを備えた新しいモジュールを作成しました。

function checkin_menu(){
    $items = array();
    $items['checkin'] = array(
        'title' => 'Checkin'
        ,'type' => MENU_CALLBACK
        ,'access arguments' => array('checkin')
        ,'page callback' => 'checkin'
    );
}

許可は、私が期待したものを正確にリストしました。.info ファイルで指定されているモジュールの名前と同じ「Checkin」というセクションと、「checkin」にパーミッションを与える 1 つの項目がありました。

後で、モジュールを拡張して、2 つの異なるパスを持つようにしました。2 つ目は管理者専用です。

function checkin_menu(){
    $items = array();
    $items['checkin'] = array(
        'title' => 'Checkin'
        ,'type' => MENU_CALLBACK
        ,'access arguments' => array('create a checkin')
        ,'page callback' => 'checkin'
    );
    $items['checkin_admin'] = array(
        'title' => 'Checkin Admin'
        ,'type' => MENU_CALLBACK
        ,'access arguments' => array('view all checkins')
        ,'page callback' => 'device_checkin_page'
    );
    return $items;
}

驚いたことに、「チェックインの作成」も「すべてのチェックインの表示」も表示されません。権限ページに元の「チェックイン」が表示されています。ここ数日、答えを探しています。男を助ける?

4

1 に答える 1

3

アクセス許可は、 hook_permである別のフックによって定義されます。

したがって、次のようなことを行う必要があります。

/**
 * Implementation of the hook_perm()
 */
function checkin_perm() {
  return array (
    'create a checkin',
    'view all checkins',
  );
}
于 2013-04-03T08:20:38.773 に答える