it-swarm-eu.dev

Jaký je rozdíl mezi argumenty přístupu a zpětným přístupem?

Jaký je rozdíl mezi argumenty přístupu a zpětným přístupem?

Předpokládejme, že jsem nastavil zpětné volání přístupu na 'user_access' A array('custom permission') je hodnota argumentů přístupu.

Co to znamená? Jak se vzájemně ovlivňují?

21
user1359

„Zpětné vyvolání přístupu“ je funkce, která se volá k ověření, zda má uživatel přístup na stránku. Jako zvláštní případ by to mohla být hodnota TRUE, a v tom případě by k ní měli přístup všichni uživatelé; jinými slovy, povolení přístupu by bylo obcházeno.

V případě, že používáte pro funkci „zpětné zpětné volání“ název funkce (ve výchozím nastavení je to „user_access“), můžete použít také „argumenty přístupu“, což je pole obsahující argumenty předané funkci zpětného volání.
Stejně jako u jiných zpětných volání nabídky musí být argumenty řetězec nebo číslo; v případě, že se jedná o číslo, bude hodnota nahrazena hodnotou převzatou z cesty nabídky. Pokud se chcete této náhradě vyhnout, musíte místo čísla použít řetězec; například použití "1" jako jednoho z argumentů předaných zpětnému volání přístupu by se zabránilo automatickému nahrazení.

Toto je několik příkladů deklarací zpětného volání z menu použitých z Drupal základní moduly. (Příklady jsou z Drupal 7 kód, ale na to, co chci poukázat), to nic nezmění.)

Toto je příklad, kdy je zpětné volání přístupu ser_access () .

  $items['file/progress'] = array(
    'page callback' => 'file_ajax_progress', 
    'delivery callback' => 'ajax_deliver', 
    'access arguments' => array('access content'), 
    'theme callback' => 'ajax_base_page_theme', 
    'type' => MENU_CALLBACK,
  );

Toto je příklad, kdy zpětné volání přístupu není název funkce.

  $items['user'] = array(
    'title' => 'User account', 
    'title callback' => 'user_menu_title', 
    'page callback' => 'user_page', 
    'access callback' => TRUE, 
    'file' => 'user.pages.inc', 
    'weight' => -10, 
    'menu_name' => 'user-menu',
  );

V tomto případě je zpětné volání přístupu ser_view_access () , kterému je předáno, nikoli číslo 1, ale hodnota převzatá z cesty menu (což je v tomto případě „user /% user“); Toto je zvláštní případ, protože funkce získá hodnotu vrácenou user_load().

  $items['user/%user'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

Předpokládejme, že předchozí nabídka byla definována následovně a byla vyvolána cestou jako „uživatel/ahoj“.

  $items['user/%'] = array(
    'title' => 'My account', 
    'title callback' => 'user_page_title', 
    'title arguments' => array(1), 
    'page callback' => 'user_view_page', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1),
    // By assigning a different menu name, this item (and all registered child
    // paths) are no longer considered as children of 'user'. When accessing the
    // user account pages, the preferred menu link that is used to build the
    // active trail (breadcrumb) will be found in this menu (unless there is
    // more specific link), so the link to 'user' will not be in the breadcrumb. 
    'menu_name' => 'navigation',
  );

V tomto případě by zpětné volání přístupu přijalo jako argument hodnotu převzatou z cesty (0 znamená „uživatel“ a 1 znamená část za „uživatel“ a lomítko); v tomto případě je tato hodnota „ahoj“.

Pro lepší pochopení těchto zástupných argumentů viz Argumenty zavaděče zástupných znaků . Stránka dokumentace je označena Drupal 6, ale to, co bylo nahlášeno, stále platí pro Drupal 7).

27
kiamlaluno

Zpětné volání přístupu je funkce, která zkoumá, zda má nějaký uživatel některá oprávnění. Výchozí zpětné volání přístupu je ser_access ()

Argumenty přístupu uvádí oprávnění, která jsou zkoumána pomocí zpětného volání. např. "přístup k obsahu"

4
Shoaib Nawaz