J'ai un type de nœud qui ne doit être édité par les utilisateurs que dans certaines circonstances qui dépassent les autorisations de leur rôle. Je le fais dans un module personnalisé.Comment créer une fonction d'accès personnalisée pour éditer un type de noeud dans Drupal?
Je voudrais supprimer la possibilité de voir même l'onglet d'édition, et pas simplement ajouter une fonction de validation au formulaire qui alertera l'utilisateur après que le formulaire est soumis.
Je dois ajouter une sorte de fonction d'accès. Quelqu'un sait-il comment faire ça?
Merci d'avance.
--Update--
J'ai maintenant 2 façons qui devraient fonctionner.
1) En utilisant hook_nodeapi:
function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch($op) {
case 'prepare':
if(!mymodule_access_function($node)) {
$_REQUEST['destination'] = 'my_access_denied_page';
// rest of function
2) I peut insérer une fonction de rappel d'accès dans l'élément de menu en utilisant hook_menu_alter.
Pour mes fins, 2 a plus de sens. J'ai pensé que j'épelperais le code pour (1) bien que puisque c'était la réponse donnée sur cette page et cela fonctionne.
Il s'agit d'un contact, mais la fonction d'accès est déjà écrite. Mon module gère une ligue sportive, où les capitaines d'équipe peuvent entrer les scores des matchs. Le contrôle d'accès (1) vérifie si vous avez la permission de gérer les ligues, ce qui permet toujours, (2) vérifie ensuite si vous êtes le capitaine de l'une des équipes qui joue et si c'est le cas (3) vérifie s'il a été plus de 48 heures depuis le début du match. Si (2) &&! (3) alors autoriser. – Ted
Je sais comment tester en utilisant hook_nodeapi (j'ai déjà la fonction écrite) mais je ne sais pas comment rediriger vers une page d'accès refusé. Comment cela est-il fait? – Ted
J'ai compris.Mise à jour ma question – Ted