Archives FluxBB.fr

Les archives de FluxBB.fr

Recherche rapide

Vous n'êtes pas identifié(e).

Version 1.4.13 : [.tar.gz][.zip] (maj 20/10/2014)
Pack langue française pour 1.4.x : [.zip] (maj 06/01/2012)

Branche 1.5.x : fluxbb.org

Version 1.2.24 fr (entièrement en français) : [.zip] (maj 26/08/2011)
Pack langue française pour 1.2.x : [.zip] [.rar] (maj 15/10/2006)

Vous avez un problème ?
Avant de poser votre question sur les forums d'entraide nous vous invitons à consulter :

#1 28-10-2009 21:27:40

pseudo
Membre

Interdire accès aux menus de la barre de navigation

bonsoir,
serait-il possible, d'une manière suffisamment simple pour qu'elle puisse être exposée ici, de contrôler l'accès aux différents menus de la barre de navigation, et ce en fonction des groupes d'utilisateurs ?
Ou peut être de masquer certains menus pour des groupes définis.

Ou tout autre manipulation permettant par exemple d'interdire l'accès à la liste des membres pour les invités.

smile

Hors ligne

#2 28-10-2009 21:35:40

KzL31
Régulier

Re : Interdire accès aux menus de la barre de navigation

soit tu te contentes de mettre la valeur g_read_board du groupe invité a 0, mais l'invité ne verra plus les forums, soit dans le code d'userlist.php tu modifies genre comme ça :

tu remplaces

if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);

par

if ($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == PUN_GUEST)
    message($lang_common['No view']);

et là l'invité pourra voir les forums mais pas l'userlist (on considère donc que g_read_board pour l'invité est a 1)

j'espère t'avoir aidé smile

Hors ligne

#3 28-10-2009 21:47:18

fanf73
Wik-wiki

Re : Interdire accès aux menus de la barre de navigation

Tout se passe dans le fichier functions.php, la fonction generate_navlinks(). En l'étudiant un minimum tu verras que certains liens ne s'affiche que pour certains groupes.

Pour la liste des membres, va voir cette discussion qui donne une réponse complète : http://www.punbb.fr/forums/viewtopic.php?id=9274


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#4 28-10-2009 22:19:32

pseudo
Membre

Re : Interdire accès aux menus de la barre de navigation

Merci pour vos réponses si rapides.
Effectivement (j'avais pourtant bien cherché mais pas avec les bons mots clés...), la réponse est ici, et doit s'appliquer sans soucis aux autres menus.

Est-ce également possible avec un lien personnel ajouté via "Options/Fonctionnalités/Items de menu additionnels" et qui n'apparait donc pas dans le fichier function.php ?

Hors ligne

#5 29-10-2009 12:47:39

fanf73
Wik-wiki

Re : Interdire accès aux menus de la barre de navigation

Non, ce n'est pas possible, tu dois l'ajouter dans le fichier functions.php si tu veux que son affichage soit conditionnés.


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#6 30-10-2009 11:19:30

pseudo
Membre

Re : Interdire accès aux menus de la barre de navigation

bonjour,
j'aurais (encore?) besoin d'être aiguillé.
j'essaye donc d'ajouter ce lien personnel dans functions.php afin qu'il ne soit affiché que pour certains groupes.
De la même manière que celle qui m'a été indiquée pour cacher la liste des membres, j'ai donc naïvement essayé d'ajouter :

if (!$pun_user['is_guest'])
        $links[] = '<li id="navogspy"><a href="http://pseudo64.ogspy-gzw.com/">'.$lang_common['OGspy'].'</a>';

Bien sûr, cela ne fonctionne pas.
Malin comme un singe, je soupçonne qu'il faille définir quelque part

id="navogspy"

mais j'ignore, avec maintes autres choses je le concède volontiers, où le faire... (ni même si c'est ce qu'il faut faire)

D'autre part, si je veux interdire la visibilité de ce lien aux invités ET aux simples inscrits (et donc ne l'afficher que pour les autres groupes) ce sera sans doute l'instruction

if (!$pun_user['is_guest'])

qu'il me faudra modifier, non ?
De quelle manière ?...

Vous serait-il possible de me mettre sur la voie ?
big_smile

Dernière modification par pseudo (30-10-2009 12:47:35)

Hors ligne

#7 30-10-2009 15:07:55

fanf73
Wik-wiki

Re : Interdire accès aux menus de la barre de navigation

Il te faut faire un test sur $pun_user['group_id'] si tu veux tester le groupe.

Pour le "id", tu n'est pas de la définir mais il doit être unique dans la page wink


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#8 02-11-2009 00:35:54

pseudo
Membre

Re : Interdire accès aux menus de la barre de navigation

bonsoir,
bon, ce n'est pas faute d'avoir essayé mais je n'arrive à rien... sad

je voulais juste rendre deux liens de la barre de navigation visibles seulement pour trois groupes (admins, modos et membres) et donc invisibles aux deux autres groupes (inscrits et invités).
J'enrage un peu de bloquer la-dessus car c'est la dernière étape avant que mon forum n'ait sa forme définitive.

Si une âme charitable passe par ici et daigne m'accorder un peu de son temps, soit pour m'expliquer en détail, soit pour faire les modifs dans mes fichiers, je serais le plus heureux des boulets...

chabot.jpg

merci...

Hors ligne

#9 17-10-2010 15:58:53

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

fanf73 a écrit :

Il te faut faire un test sur $pun_user['group_id'] si tu veux tester le groupe.

Pour le "id", tu n'est pas de la définir mais il doit être unique dans la page wink

Bonjour
Je viens d'installer un fluxBB pour une asso. J'ai utilisé quelques mods pour arriver à paramétrer ce qu'on me demande. J'ai bien suivi pour l'accès "interdit aux invités". Ça marche.
Mais par contre je ne comprends pas comment réaliser l'interdiction à un des groupes de membres d'avoir ni accès à la liste des autres membres (modos et admin compris) ni aux uploads.
Je ne sais pas créer de toute pièce des 'if $ etc.' et des 'id_' mais je peux les intégrer comme il faut aux scripts.
Est-ce qu'on peut expliquer pas à pas la procédure ?
Merci beaucoup d'avance.

Hors ligne

#10 17-10-2010 17:05:09

adaur
Habitué actif

Re : Interdire accès aux menus de la barre de navigation

Bonjour,

Pour interdire l'accès d'une page à un ou plusieurs groupes, il suffit de rajouter un

if($pun_user['g_id'] == ID_GROUPE)
message($lang_common['No permission']);

après l'inclusion du include/common.php.

Dernière modification par adaur (17-10-2010 17:05:19)


"As code is more often read than written it's really important to write clean code." - Franz

Hors ligne

#11 17-10-2010 18:25:31

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Bonjour adaur Merci de ta réponse rapide.
J'ai bien ouvert le fichier "userlist.php" où j'ai intégré ce que tu m'as dit mais ça ne fonctionne pas.:(
Il faut peut-être que j'identifie le groupe ? comment ?
Peux-tu me guider un peu plus dans ce trafic ?

define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';

if($pun_user['g_id'] == ID_GROUPE)
message($lang_common['No permission']);

if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);

Hors ligne

#12 17-10-2010 19:24:27

bagu
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Peut être en remplaçant ID_GROUPE par l'id du groupe à interdire ?

Hors ligne

#13 17-10-2010 20:21:07

adaur
Habitué actif

Re : Interdire accès aux menus de la barre de navigation

bagu a écrit :

Peut être en remplaçant ID_GROUPE par l'id du groupe à interdire ?

Oui, c'est ce qu'il faut faire happy
Cependant tu peux simplifier le code:

if($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == ID_GROUPE)
    message($lang_common['No view']);

en remplacement de

if($pun_user['g_id'] == ID_GROUPE)
message($lang_common['No permission']);

if ($pun_user['g_read_board'] == '0')
    message($lang_common['No view']);

"As code is more often read than written it's really important to write clean code." - Franz

Hors ligne

#14 17-10-2010 21:33:59

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Ah bonjour Bagu et merci adaur de revenir sur mon problème.
Ça marche.
Donc pour cacher aux membres la "liste des membres", il faut écrire dans le "userlist.php"

if($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == '4')
    message($lang_common['No view']);

en trouvant le n° du groupe à paramétrer sur le "common.php" :

// Define a few commonly used constants
define('PUN_UNVERIFIED', 32000);
define('PUN_ADMIN', 1);
define('PUN_MOD', 2);
define('PUN_GUEST', 3);
define('PUN_MEMBER', 4);

Super.
Mais comment à partir de là restreindre cette interdiction à un groupe de membres particulier ? Existe-t-il quelque part un codage des sous-groupes type 41, 42, 43 etc. ou 4.1; 4.2....

Hors ligne

#15 17-10-2010 22:19:28

adaur
Habitué actif

Re : Interdire accès aux menus de la barre de navigation

Dès que tu crées un groupe, un ID lui est attribué (voir table groups) wink


"As code is more often read than written it's really important to write clean code." - Franz

Hors ligne

#16 18-10-2010 13:10:44

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Bonjour.
Me revoilà après des petits tests.
Une nouvelle table a bien été créée: id_5 qui correspond après vérification au nouveau groupe "membres restreints" basé sur le groupe "membres" (id_4).
Mais, un autre groupe basé toujours sur ce groupe "membres", nommé "membres qualifiés", a gardé l'id_4. J'ai fait les essais sous plusieurs identifiants pour m'en apercevoir.
Qu'est-ce qui est alors pris en compte pour la création d'un ID spécifique (qui devrait être id_6) ? étrange pour moi; je ne vois pas. Et vous ?

Hors ligne

#17 18-10-2010 14:50:49

Mpok
Néo Admin

Re : Interdire accès aux menus de la barre de navigation

Si en créant un nouveau groupe celui-ci n'a pas un id différent, c'est que la base de données ne fonctionne pas : ré-installer le tout (à vide).
Ensuite, re-créer progressivement les choses (groupes, catégories, forums, etc..) TOUJOURS par l'interface du forum (mode admin) et surtout pas à la main sur phpMyAdmin.


Life is a struggle, programming is a suffer.

Hors ligne

#18 20-10-2010 18:14:39

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Bonjour, merci Mpok de ton intervention
C'est OK. Je vois bien de nouveau le bon nombre d'id_. Il a fallu tester pour voir qui était qui. Ce n'est pas explicite dans les tables, savoir quel id_ correspond à quel title et user_title.
Pour la requête comment dois-je l'écrire correctement quand il y a plusieurs groupes ? Est-ce suffisant de la mettre une fois pour toute dans le seul fichier "user_list" ?

if($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == '4')
    message($lang_common['No view']);
if($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == '6')
    message($lang_common['No view']);

Est-ce que c'est correct ainsi ?

Hors ligne

#19 21-10-2010 09:28:50

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Bonjour
la formule ne doit pas être la bonne car même après vidage du cache, le groupe 6 a toujours la visibilité de la liste. Mais elle reste bien cachée au groupe 4.
Vous avez une idée ? d'avance merci.

Hors ligne

#20 21-10-2010 13:27:25

adaur
Habitué actif

Re : Interdire accès aux menus de la barre de navigation

if($pun_user['g_read_board'] == '0' || $pun_user['g_id'] == '4' || $pun_user['g_id'] == '6')
    message($lang_common['No view']);

en remplacement du code au dessus ça devrait être bon

Dernière modification par adaur (21-10-2010 13:27:41)


"As code is more often read than written it's really important to write clean code." - Franz

Hors ligne

#21 22-10-2010 12:13:33

Caf/3
Nouveau Membre

Re : Interdire accès aux menus de la barre de navigation

Merci beaucoup adaur
C'est impeccable. Est-ce qu'un résumé de la manoeuvre ne devrait pas être mis dans la partie documentation bidouilleurs > autres astuces ?
Ça complèterait le Enlever la liste des modérateurs d'un forum sur l'index des forums. Non ?

Hors ligne

#22 22-10-2010 13:35:22

adaur
Habitué actif

Re : Interdire accès aux menus de la barre de navigation

Pour ça, je te conseille de demander à Wik-Wiki tongue.


"As code is more often read than written it's really important to write clean code." - Franz

Hors ligne

#23 22-10-2010 13:56:10

fanf73
Wik-wiki

Re : Interdire accès aux menus de la barre de navigation

Tout le monde peut apporter sa pierre à la documentation, je ne suis pas le seul à pouvoir la compléter wink


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#24 24-10-2010 02:08:16

Mpok
Néo Admin

Re : Interdire accès aux menus de la barre de navigation

fanf73 a écrit :

Tout le monde peut apporter sa pierre à la documentation, je ne suis pas le seul à pouvoir la compléter wink

Tout à fait.
Mais les utilisateurs ne sont pas forcément au courant. Peut-être un bandeau d'accueil ?
(de la même façon qu'il faut que je fasse depuis plusieurs semaines un bandeau pour la page mods, signalant la nouvelle politique…).


Life is a struggle, programming is a suffer.

Hors ligne

#25 24-10-2010 10:19:27

fanf73
Wik-wiki

Re : Interdire accès aux menus de la barre de navigation

C'est déjà indiqué sur la page d'accueil de l'aide :

Doc a écrit :

Vous êtes sur un espace de travail collaboratif, un wiki. Tous les membres peuvent modifier les pages de cette documentation en prenant soin de :

mais bon, encore faut-il que ce passage soit lu en effet.


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

Pied de page des forums