2012-05-08 1 views
2

현재 Drupal 7을 사용하고 있으며 특정 권한 ("비즈니스 대시 보드 사용")을 가진 사용자가 기본 메뉴의 메뉴 항목을 볼 수 있도록 사용자 정의 코드를 작성하고 있습니다. 문제는이 메뉴 항목 만 I (admin) 만 볼 수 있다는 것입니다. 권한 페이지에서 사용자 지정 권한을 만들고 "admin"및 사용자 별 역할에 액세스 할 수 있도록 설정하고 다음 코드를 구현했습니다 (모듈 이름의 "xxxxxx"는 절대로 사용하지 않습니다. 차라리 지금은 익명을 유지하지만, 단지 그들이 모든 기계 판독 모듈 이름의 장소)에 있다는 것을 알 것이다 : 나는의 역할 별 권한이 내 테스트 사용자로 로그인Drupal - 사용자 권한을 통해 메뉴 항목의 가시성을 전환합니다.

function xxxxxx_menu(){ 
$items = array(); 

$items['xxxxxxx'] = array(
    'title' => 'Business Owner Dashboard', 
    'page callback' => '_xxxxxx_page', 
    'access arguments' => array('use business dashboard'), 
    'type' => MENU_NORMAL_ITEM, 
); 
return $items; 
} 

function xxxxxx_permission(){ 
    return array(
      'use business dashboard' => array(
      'title' => t('Have access to business dashboard'), 
      'description' => t('Allow user to send out SMS messages via   database query forms'), 
     ), 
    ); 
} 

"비즈니스 대시 보드 사용"메뉴 항목을 볼 수 없습니다. 믿기지 않을 정도로 간단하다고 확신하지만, 몇 시간 동안 인터넷 검색 및 코드 작업을 해왔습니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변

3

알아낼 수 없습니다. 액세스 콜백을 중단 할 수 있습니까, 작동하지 않으면 적어도 진행 상황에 대한 팁을 줄 것입니다.

코드는 다음과 같이 갈 수 있습니다 :

function xxxxxx_menu(){ 
$items = array(); 

$items['xxxxxxx'] = array(
    'title' => 'Business Owner Dashboard', 
    'page callback' => '_xxxxxx_page', 
    'access callback' => 'my_custom_access_callback', 
    'type' => MENU_NORMAL_ITEM, 
); 
return $items; 
} 

function my_custom_access_callback() 
{ 
    if(user_access('use business dashboard')) 
     return TRUE; 

    return FALSE; 
} 

날까지이 작동하는지 ... 무하마드.

+2

이상하게도 내가 할 일은 권한 사용 가능한 컴퓨터가 읽을 수있는 이름을 "use_business_dashboard"로 변경하고 캐시를 지우는 것뿐이었습니다! – Eric

+0

답변 선택 – emc