2011-10-10 4 views
2

내 사이트의 다양한 섹션을 제한해야합니다. 다양한 하위 경로에 대한 액세스를 제한하여이 작업을 수행하고 싶습니다. Path Access 모듈은 실제로 이것을하지 않습니다.Drupal 7 : 경로로 액세스 제한

당신은 같은의 제한을 허용하는 어떤 메커니즘을 제안 할 수 있습니다 :

회원 영역/'편집자의 역할이있는 사용자 만 제한 편집자/* .

규칙을 사용하여이를 수행 할 수있는 방법이 있습니까? 나는 시도했지만 찾지 못했습니다.

감사

답변

7

당신은 너무 어렵지 않다,이에 대한 사용자 정의 모듈을해야합니다.

// Implements hook_init() 
function mymodule_init() { 
    $restrictions = mymodule_get_restrictions(); 
    global $user; 
    foreach ($restrictions as $path => $roles) { 
    // See if the current path matches any of the patterns provided. 
    if (drupal_match_path($_GET['q'], $path)) { 
     // It matches, check the current user has any of the required roles 
     $valid = FALSE; 
     foreach ($roles as $role) { 
     if (in_array($role, $user->roles)) { 
      $valid = TRUE; 
      break; 
     } 
     } 

     if (!$valid) { 
     drupal_access_denied(); 
     } 
    } 
    } 
} 

function mymodule_get_restrictions() { 
    // Obviously this data could come from anywhere (database, config file, etc.) 
    // This array will be keyed by path and contain an array of allowed roles for that path 
    return array(
    'members-area/editors/*' => array('editor'), 
    'another-path/*' => array('editor', 'other_role'), 
); 
} 
+0

확인, 감사이, 나는 그것을 밖으로 시도 할 것이다. 유일한 문제는 현재 프로젝트에 대한 사용자 지정 코드를 사용하지 않아야한다는 것입니다. –

+0

[콘텐츠 액세스 모듈] (http://drupal.org/project/content_access)을 살펴 보셨습니까? 당신은 당신이 그것을하려고 노력하고있는 것을 짜낼 수 있습니다 :-) – Clive

0

경로 액세스 모듈이 사이트는 드루팔 사이트의 모든 페이지에 대한 액세스 제어의 추가 계층 을 관리자 제공 : 이것의 핵심이 될 것입니다.

http://drupal.org/project/path_access