Ciao a tutti,
avrei bisogno di alcuni chiarimenti in merito alla funzione in oggetto.
function pagi_menu() {
$items = array();
$items['pagi'] = array(
'title' => t('Data from external db'),
'description' => 'pagi',
'page callback' => 'service_list',
'access arguments' => array('access content'),
'menu_name' => 'menu-menu-cliente',
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
Nello specifico, l'array pagi è raggingibile tramite l'URL www.miosito.com/pagi ... Corretto?
Il quale in questo momento è accessibile a tutti....
Se volessi limitare l accesso a questo modulo solo ad un gruppo di utenti... come dovrei procedere?
1) Il path dove punta il tuo menu lo specifichi in $items:
2) In che modo vuoi limitare l'accesso a quel modulo?
Hai bisogno di un permesso specifico? Se si, allora devi implementare anche l'hook_permission.
Se dichiari:
tutti gli utenti con permesso Access content possono accedere al menu.
3) Se non dico castronerie, o scegli la strada indicata al punto precedente, oppure nel tuo hook_menu puoi aggiungere una funzione di callback per selezionare da codice quali utenti autorizzare; dovrebbe essere qualcosa del tipo:
La funzione_di_callback sarà una funzione che restituisce TRUE se l'utente dispone di diritti di accesso a questa voce di menu, e FALSE in caso contrario.
Ciao!
Ciao a tutti, questa è una funzione presa dalle faq ed è ottima:
$items['faq/order'] = array(
'title' => 'Order',
'description' => 'Allows the user to configure the order of questions and answers on a FAQ page.',
'file' => 'faq.admin.inc',
'page callback' => 'drupal_get_form',
'page arguments' => array('faq_order_settings_form'),
'access callback' => 'user_access',
// in permessi si potrà impostare la visualizzazione
'access arguments' => array('administer faq order'),
'type' => MENU_LOCAL_TASK,
'weight' => -8,
);
poi l'hook per l'accesso in cui in base alla variabile $op passata come argomento, inserita nelle istruzioni di selezione, si definisce chi puo' fare cosa.
/**
* Implementation of hook_access().
*/
function faq_access($op, $node, $account = NULL) {
global $user;
if (empty($account)) {
$account = $user;
}
if ($op != 'create') {
$node = (object)$node;
}
if ($op == 'create') {
if (user_access('create faq') || user_access('administer faq')) {
return TRUE;
}
}
elseif ($op == 'update' || $op == 'delete') {
if (user_access('edit faq') || user_access('administer faq')) {
return TRUE;
}
elseif (user_access('edit own faq') && $account->uid == $node->uid) {
return TRUE;
}
}
}
questo il gancio permessi in cui è presente nell'array 'administer faq order'
/**
* Implementation of hook_perm().
*/
function faq_perm() {
return array('administer faq', 'view faq page', 'edit own faq', 'edit faq', 'create faq', 'administer faq order');
}
Spero sia utile. Comunque puoi analizzare il modulo faq complesso ma molto ben fatto.