Vous devez être membre et vous identifier pour publier un article.
Les visiteurs peuvent toutefois commenter chaque article par une réponse.
[phpBB3] Permissions des forums
Article publié le 31/01/2008 19:48:26Les méthodes
$auth-acl_get(’f_’); Permissions du forum (généralité)
$auth-acl_get(’f_announce’); Peut poster des annonces
$auth-acl_get(’f_attach’); Peut attacher des fichiers
$auth-acl_get(’f_bbcode’); Peut utiliser le BBCode
$auth-acl_get(’f_bump’); Peut remonter les sujets
$auth-acl_get(’f_delete’); Peut détruire ses messages
$auth-acl_get(’f_download’); Peut télécharger des fichiers
$auth-acl_get(’f_edit’); Peut éditer ses messages
$auth-acl_get(’f_email’); Peut envoyer des sujets par mail
$auth-acl_get(’f_flash’); Peut poster du Flash
$auth-acl_get(’f_icons’); Peut utiliser les icônes des messages
$auth-acl_get(’f_ignoreflood’); Peut ignorer la limite de flood
$auth-acl_get(’f_img’); Peut poster des images
$auth-acl_get(’f_list’); Peut accéder au forum
$auth-acl_get(’f_noapprove’); Peut poster sans devoir être approuvé
$auth-acl_get(’f_poll’); Peut créer des sondages
$auth-acl_get(’f_post’); Peut créer des nouveaux sujets
$auth-acl_get(’f_postcount’); Incrémente le nombre de messages postés (appliqué aux nouveaux messages)
$auth-acl_get(’f_print’); Peut imprimer les sujets
$auth-acl_get(’f_read’); Peut lire le forum
$auth-acl_get(’f_reply’); Peut répondre aux sujets
$auth-acl_get(’f_report’); Peut rapporter les messages
$auth-acl_get(’f_search’); Peut chercher dans le forum
$auth-acl_get(’f_sigs’); Peut utiliser sa signature
$auth-acl_get(’f_smilies’); Peut poster des émoticônes
$auth-acl_get(’f_sticky’); Peut poster des post-it
$auth-acl_get(’f_subscribe’); Peut souscrire au forum
$auth-acl_get(’f_user_lock’); Peut verrouiller ses propres sujets
$auth-acl_get(’f_vote’); Peut voter dans les sondages
$auth-acl_get(’f_votechg’); Peut modifier un vote existant
Exemples
Récupérer l’utilisateur phpBB3
Pour rappel, il est possible de récupérer l’utilisateur phpBB3 de cette manière :
Code php (8 lignes)
{ } $phpbb_root_path=’forum/’; include_once($phpbb_root_path.’common.php’); $user-›session_begin(); $auth-›acl($user-›data);
Si nous ne définissons pas cette variable, le forum renverra immédiatement une page vide.
Code php (1 ligne)
$phpbb_root_path=’forum/’;
Ici, nous définissons le chemin pour atteindre la racine du forum
Code php (1 ligne)
$user-›session_begin();
Nous démarrons la session phpBB. Nous pouvons donc accéder aux informations relatives à l’utilisateur en cours.
Par exemple,
Code php (1 ligne)
echo $user-›data[’username’];
permet d’afficher le nom d’utilisateur.
Code php (1 ligne)
$auth-›acl($user-›data);
Cette partie est facultative, et permet d’utiliser les permissions de phpBB
Restriction d’accès des forums
Nous devons parfois déterminer quels sont les forums que le visiteur peut lire, pour masquer les forums cachés. Il suffit de demander à l’objet $auth que le forum nous fournit (voir le fichier includes/auth.php) et d’invoquer sur lui la méthode acl_get. Nous passons en argument à cette méthode ’f_’ pour signaler que nous désirons accéder aux permissions des forums, puis ’read’ pour signaler que nous désirons consulter les permissions en lecture.
Deux approches sont possibles :
- soit ne chercher que dans les forums permis (indiqué quand il existe plus de forums cachés que de forums visibles)
- soit exclure les forums cachés (recommandé dans le cas où il existe plus de forums visibles que de forums cachés)
Le code suivant nous fournit donc un tableau avec les identifiants des forums à masquer au visiteur :
Code php (2 lignes)
Nous pouvons remarquer le signe ! pour demander seulement ceux pour lesquels l’utilisateur ne possède pas de droit de lecture.
Si nous avons une requête sql contenue dans la variable $sql, nous pouvons ajouter à la clause WHERE une condition supplémentaire en excluant les forums cachés :
Code php (6 lignes)
$sql .=’ WHERE topic_moved_id = 0’; { }
Erreur ???
Si vous rencontrez l’erreur suivante : The config. file could not be found. Click here to install phpBB, pensez avant tout à vérifier que vous avez préalablement déclaré la variable $phpEx et que vous lui avez affecté la valeur de l’extension (ex : $phpEx = ’php’;).
Avancé
Nous pouvons travailler de cette manière pour intégrer les sessions phpBB à notre site, mais nous sommes alors entièrement dépendants des modifications apportées au forum.
Il est préférable de créer notre propre classe utilisateur, et affecter les valeurs de l’utilisateur phpBB aux variables de cette classe. Il faut aussi redéfinir les méthodes relatives à la sécurité.
De cette manière, nous sommes indépendants du forum, et il suffit de modifier à un seul endroit le cargement des données pour ne plus utiliser phpBB, ou si les méthodes de phpBB sont modifiées.
Un article de Steph
Source : indéterminée
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 13/09/2004, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/ast-rf-434.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.