Les permissions de groupes/membre/catégorie

Solved by Fred · 25 Mar 2026 18:32
Avatar
Posts 56 120

Hello

j´ai créé une catégorie et je veux que les internautes non connectés puisses y créer des sujets et des messages.
Le module des permissions pour les groupes fonctionnent bien pour le codage dans l´administration, il reste que j'ai donné aux groupe Invités l´autorisation de créer des sujets et celle de créer des messages.

Suppression de l´historique et test sur Chrome et Safari on me demande encore de me logguer.

Amélioration:
Ne fonctionne pas dans le concret même si c'est bien codé et enregistré.

Suggestion:
Permettre de donner des permissions de ce genre là non pas globalement pour un groupe ET pour TOUT le Forum mais aussi, donner la possibilité de sélectionner une catégorie et un groupe comme j´essaye de le faire.

exemple: Le groupe Invités peut écrire des messages et créer des sujets dans la catégorie ABC et juste là.

On discute, rien ne presse!

🙂

Edited on  Mar 23, 2026  By  314r .

  • suggestion amélioration french solved
Avatar
Posts 428 1580

Bonjour Pierre,

Deux points distincts dans votre message.

1. Les permissions Invités ne fonctionnent pas

Vous avez trouvé un vrai bug. La permission "Invités peut créer des sujets/messages" est bien enregistrée dans l'administration, mais elle n'a aucun effet concret.

La raison est dans le code : les méthodes de création de discussion et de réponse vérifient si une session utilisateur existe avant de consulter les permissions de groupe. Si ce n'est pas le cas, l'invité est redirigé vers le login immédiatement — les permissions configurées ne sont jamais consultées. C'est un bug à corriger.

2. Les permissions par catégorie

Elles existent bien dans Flatboard, mais uniquement pour la visibilité : le champ "Groupes autorisés" dans l'administration d'une catégorie contrôle qui peut voir la catégorie, pas qui peut y écrire.

Votre suggestion porte sur quelque chose de différent et qui n'existe pas encore : des droits d'écriture (créer des sujets, poster des réponses) définis par groupe et par catégorie. C'est une évolution intéressante, notée.

Merci pour ces retours détaillés.

Avatar
Posts 428 1580

Si vous souhaitez tester cette première ébauche, elle sera intégrée à la prochaine version si les résultats sont concluants 😉

Fix — DiscussionController : vérification canWrite() sur la catégorie
Fix — PostController : vérification canWrite() sur la catégorie de la discussion
Voici le récapitulatif de tous les changements inclus :

#FichierModification
1app/Middleware/RateLimitMiddleware.phpBypass admin — les admins ne sont plus jamais bloqués
2app/Models/Category.phpNouvelle méthode canWrite() — vérifie les droits d'écriture par groupe et par catégorie
3app/Controllers/Admin/CategoryController.phpSauvegarde de write_groups dans create() et update()
4app/Views/admin/categories.phpNouveau bloc UI "Groupes autorisés à écrire" dans le formulaire de catégorie
5themes/assets/js/admin/modules/categories-management.jsToggle UI + sérialisation du write_groups dans le FormData
6app/Controllers/Discussion/DiscussionController.phpcreate() et store() utilisent canGuest() + vérifient canWrite() sur la catégorie
7app/Controllers/Discussion/PostController.phpstore() utilise canGuest() + vérifie canWrite() sur la catégorie de la discussion

Edited on  Mar 23, 2026  By  Fred .

  • Like(1)
    314r314r
Avatar
Posts 56 120

Bonjour Fred,

Réactivité lumière de ta part,

Ok, ici: [https://flatboard-fr.314r.ca/533/](Installation de la version 5.3.3)

Plusieurs choses, aussi je vais rester sur les permissions et créer d'autres sujets plus tard.

Pour la version de test, le prototype 5.3.3

  1. Les Invités ne peuvent pas créer de sujets ni écrire de réponse même si les permissions dans l'administration disent que oui, on demande toujours de se logguer.

  2. Le module offre une réflexion inversée, je considère que ton code est parfait actuellement avec la version 5.2.0 pour définir les permissions globales accordées automatiquement. Le travail de la version 5.3.3 devrait DONNER du pouvoir d'AJOUTER des permissions en les modifiant uniquement si on le veut.

Ce qui est en place dans ton prototype est une ouverture totale du Forum aux Invités, ce qui est contre productif. Dans ton petit module en bas à gauche, je n'ai pas été porté à "supprimer" des permissions en les retirants au groupe Invités qui techniquement, sur un Forum, ne devraient pas les avoir (on parle toujours de créer des sujets et des réponses)

  1. Ce qui amène au point de créer des groupes à qui on donne, lors de leurs créations, les permissions que nous voulons. Cela permettrait de ne pas modifier ton code de la 5.2.2 pour les permissions INITIALEMENT données mais le module des permissions AJOUTÉ à la version 5.3.3. donnerait des pouvoirs de "modifications" des permissions aux groupes préétablis ET un module de permissions à remplir obligatoirement lors de la création de nos groupes personnels.

Ainsi, le groupe Invité garderait son statut initial laissant le Forum en mode protection blindée pour tous internautes non connectés et les administrateurs devraient créer un groupe perso pour avoir ce qu'il veulent, dans mon cas, un groupe Invités-Perso qui pourrait créer des sujets et répondre aux sujet de CETTE CATÉGORIE LÀ seulement.

Autrement dit,
Tout dans la version 5.2.2 est ok, ton nouveau module de modification aussi, mais la version 5.3.3 devrait ajouter et non modifier le système de base qui est en place dans les permissions accordées au Groupes de base,

cela indique que nous pouvons modifier les permissions des groupes en place maintenant et pour avoir un groupe hors norme, comme celui que je veux avoir dans une seule catégorie, un module de permission ajouté au bloc de création des groupes pourrait être installé. Obligatoire à remplir, on copie les permission du groupe Membre ou on copie les permissions d'un autre groupe ou ont doit obligatoirement définir nos propres permissions pour notre nouveau groupe.

En plus: il reste à régler le problème de mise en place des mise à jour, un bouton reset de ceci-cela comme vider le cache de Flatboard, pour permettre l'activation des modifications en vrai. Là on a un panneau d'admin qui nous dit que tout est ok mais un navigateur qui on ne sait pas trop si il est au courant des nouvelles règles (suppression d'historique et de cache chez l'hébergeur,... on doute.)

N'hésites pas à me demander de clarifier si mon propos ne semble pas clair,
Pierre

Avatar
Posts 56 120

Rebonjour,

un ajout à mon long message qui pourrait être une clé de travail pour arriver à créer le plus en modifiant le moins.

Il faudrait créer dans le module de création de groupe et au module de permissions à donner à ce groupe, une fonction "Internautes non connectés" et donner un choix dans les permissions de base, non pas de modération ou rien mais juste quelques trucs qui sont habituellement données au groupe Membres.

  • Créer un sujet, - répondre, - insérer on non des images, - joindre ou non des fichiers et lesquels seraient permis - etc.

Pour ce que j'ai vu, on peut déjà donner à un nouveau groupe les permissions d'un autre, ce qui manque est ce que je viens de mentionner, selon ma vision du truc.

Et rendre le tout fonctionnel en réel, 😉

Avatar
Posts 428 1580

Version de DEV à jour :

La cause était que getAllCategories() maintient un cache statique PHP (self::$categoriesCache) en mémoire. La boucle de update() lisait toujours la même version du tableau en mémoire, et chaque écriture écrasait les modifications de l'itération précédente. Les groupes n'ont pas ce problème car updateGroup() passe par updateGeneric() qui lit directement le fichier sans cache statique.

FixFichiers
Permissions InvitésrequireAuth() remplacé par canGuest()app/Controllers/Discussion/DiscussionController.php (×2 méthodes) · app/Controllers/Discussion/PostController.php
Drag & drop catégories — une seule opération atomique au lieu d'une boucle d'update() qui corrompait l'ordre via le cache statiqueapp/Storage/JsonStorage.php · app/Storage/SqliteStorage.php · app/Controllers/Admin/CategoryController.php
  • Like(1)
    314r314r
Avatar
Posts 56 120
Mon retour sur le module des permissions :: Community 5.3.3 DEV - pour tests

Plusieurs messages popup indiquent ceci
Copiez ce token il ne sera plus jamais affiché.
Une bande jaune au dessus de la phrase
Ce message pop plusieurs fois sans que j'identifie l'action qui le provoque.

Tous les problèmes mentionnés plus haut sont réglés, les permissions sont faciles à modifier, pas besoin d'étudier des heures de données insipides, on y va à l'intuition c'est limpide et simple, efficace. Bravo.

Les permissions des fichiers causent un soucis, pas un problème mais il reste une ombre.
Section Permissions/ Onglet Paramètres des fichiers
Il y a trois sections
Pièces jointes / Images / Avatars

Il faut absolument qu'un choix soit coché dans les trois sections autrement une alerte Erreur se manifeste en popup, pour que les erreurs ne se manifestent PAS il FAUT cocher au moins un choix dans chaque sections.

Ma suggestion est de permettre de ne joindre ni fichier, ni image, ni avatar pour tel ou tel groupe. Le groupe des SPAMMEURS par exemple, ou le groups des BOULETS, ou de celui des TROLLS, 😇
On veut les garder mais on ne veut pas leurs permettrent de joindre aucun fichier d'aucune sorte et pas d'avatar non plus, on va leur en donner un générique, (tiens, une autre idée, possibilité de donner un avatar générique aux groupes selon notre humeur et chaque membre qui télécharge un avatar personnalisé dans son profil écrase l'avatar générique.)


Internautes_Non-Connectés

Un ou une Internaute visite le Forum et veut réagir sans devoir se connecter, sans vouloir devenir membre cela devrait être possible, c'est possible sur d'autres logiciels de Forums actuellement. On imagine un client.e pressé.e qui veut mentionner un problème avec un produit et recevoir un avis, pas de compte, pas le temps d'en créer un, pas intéressé non plus à ouvrir un dossier juste une information à déposer.

Je vois ceci, espérant que ce soit inspirant pour Fred


La possibilité de cliquer sur
Créer une nouvelle discussion (ou répondre à un sujet) ouvrirait une page avec un éditeur de message simplifié et des champs à remplir ou pas::

Pseudo: obligatoire
Adresse mail: optionnelle
Titre du sujet: obligatoire
Message: obligatoire
Joindre des images: optionnel (jpg et/ou png et/ou webp taille maximale de chaque fichier xM, quantités de fichier 1, 2 ou 3 etc...)
Capcha à résoudre: obligatoire
Cliquer pour Envoyer: obligatoire

Pour qu'un administrateur puisse activer cela, il serait bien de créer un modèle qui soit déjà en place et que l'admin pourrait activer s'il le veut, et lui octroyer quelques droits et restrictions sur les fichiers images. Les autres types de fichiers joins seraient évidement non permis.

Voulez vous activer le Groupe Internautes_Non-Connectés ?
oui
Si vous ne cochez pas sur oui il ne sera jamais activé.

La question est de savoir comment créer ce groupe pour qu'il soit activable en cochant simplement une case dans le panneau d'administration.
Les permissions pour ce groupe serait pré-limitées (restrictives à l'avance) et juste quelques options sur les fichiers images:: si oui ou non ils peuvent en joindre, combien, quels formats et quels poids.

L'idée est là.
Pierre

Edited on  Mar 23, 2026  By  314r .

Avatar
Best answer set by Fred 23 days ago
Posts 428 1580

Bonjour Pierre.

🐛 Bug 1 — Popup "Copiez ce token" intempestive

Complexité : faible — Pertinence : oui, c'est un vrai bug


✅ Bug 2 — Erreur si aucun type de fichier coché (Pièces jointes / Images / Avatars)

Complexité : faible à moyenne — Pertinence : oui, c'est un vrai bug


Nouvelle structure des permissions de fichiers.

Nouvel onglet optimisé

🟡 Suggestion 3 — Groupe "Internautes_Non-Connectés" (posts anonymes)

Complexité : élevée — Pertinence : à discuter

Le système actuel repose entièrement sur Session::get('user_id'). La permission post.create vérifie canGuest(), ce qui existe déjà partiellement — mais créer un vrai flux de post anonyme demande :

  • Un formulaire front-end alternatif (éditeur simplifié, champs pseudo/mail)
  • Un contrôleur dédié (ou une branche dans le contrôleur existant) qui gère la soumission sans user_id
  • Un stockage du post avec pseudo + mail optionnel à la place d'un user_id
  • Un système de modération en amont (queue de validation admin avant publication) — sinon c'est une porte ouverte aux spams
  • Un CAPTCHA intégré (le plugin FlatCaptcha existe mais son intégration dans ce flux est à faire)
  • Une option d'activation dans l'admin
  • Des permissions pré-configurées restrictives pour ce pseudo-groupe

Ce n'est pas une petite modification. C'est une fonctionnalité majeure qui touche au modèle de données, aux contrôleurs, aux vues front-end et à l'administration, je ne suis pas sur de son intéret car il vas alourdir Flatboard inutilement à mon sens.

Je règles quelques coquilles et met à jour la version Dev.

  • Like(1)
    314r314r
Avatar
Posts 56 120

Bonjour tout le monde,

@Fred
Super si les petits bugs sont réglés, je vais attendre la nouvelle version DEV qui sera accessible où précisément? Le quand sera lorsque cela sera, il n'y a aucune urgence, ce mode DEV est une version que tu as nommée 5.3.3_DEV et je la considère comme une version pour les gens curieux et pour remonter des observations et bugs qui n'ont, pour moi, qu'un seul objectif
T'aider dans le peaufinement de ton projet.

C'est important de le mentionner, il n'y a que toi qui décide de tes listes de choses à faire, en fonctions de ton système de priorité en lien avec ton projet. Tu es le leader du projet Flatboard. Point.

Mention importante

Les suggestions que je propose sont des idées qui surgissent et qui concernent des options, des bonifications possibles ou pas, des fonctionnalités qui POURRAIENT apporter un plus au logiciel Flatboard et NON un besoin ni un problème à régler pour moi.
Les idées: parfois on les cherche, parfois on les reçois, on les développe ou pas.

Tu feras ce qui est le mieux pour ton projet et je vais persévérer à t'en proposer des idées, si j'en ai. Communautaire est un mot que j'apprécie dans son sens et dans l'implication qu'il suggère d'avoir envers ce qui nous intéresse, Flatboard m'intéresse.

Je me répète publiquement ici, j'adore Flatboard, pour avoir essayé tout ce qui est accessible en terme de logiciel de Forum. Depuis la crise mondiale du coronavirus. Flatboard est hyper et réellement hyper moderne en terme de gestion pour un Webmestre, amateur ou professionnel. Son peaufinement ira plus vite si les coquilles ici et là sont réglées, si les trucs qui dépassent trop sont supprimées et si nous pouvont ne plus jamais avoir affaire avec des popups curieuses et intempestives qui nous informent de problèmes qui ne devraient évidemment pas surgir.

C'est un réel plaisir pour moi de tester (bêta-testeur un jour bêta-testeur toujours), je reste fasciné par ton travail Fred, vraiment, le setup est impeccable. Propre, et tout et tout.
Voilà, c'était mon coup de gueule positif 🥰
Lâches pas et prends soin de toi

Pierre

Avatar
Posts 428 1580

Salut Pierre,

Merci pour ton message, ça fait vraiment plaisir à lire 👍

De mon côté, je vois les choses assez simplement : quand les retours et les reports sont pertinents, je trouve ça totalement normal de modifier ou d’ajouter des choses. C’est même comme ça que le projet avance dans le bon sens.

Après, comme tu le dis très bien, tout est une question de priorités et de vision globale, mais tes remarques et idées restent toujours bonnes à prendre, surtout dans cet esprit communautaire.

Je viens d’ajouter l’archive de la nouvelle version de test pour que tu puisses y jeter un œil quand tu veux.

En tout cas, merci pour ton implication et ton regard, ça aide clairement à faire évoluer Flatboard dans la bonne direction 🙌

À bientôt

  • Perfect(1)
    314r314r
Avatar
Posts 428 1580

Après plusieurs tests concluants, les améliorations apportées seront intégrées dans la prochaine version.
Je considère donc cette discussion comme résolue, tout en la laissant ouverte au besoin.

  • Like(1)
    314r314r
Avatar
Posts 56 120

Super
la vie familiale me tient loin de l´ordi, je vais tester la version DEV ci haut samedi et dimanche prochain, ne mentionnant ici que ce qui pourrait etre un bug. Le sujet est clos mais reste ouvert. Excellent!

Avatar
Posts 56 120

Testé plus tôt que prévu,

Une seule chose est encore présente dans l'administration, la fenêtre popup d'ATTENTION, bande jaune et qui dit:

Copiez ce token maintenant, il ne sera plus jamais affiché.

Ce token est apparu en cliquant sur Profil, je n'étais pas dans le panneau admin mais sur le forum.

Cette fenêtre ment, elle dit qu'elle ne sera plus jamais affichée mais bon, elle se réaffiche. La câline. 😅

CORRECTION DU MESSAGE:
un échange utile avec @Flatbot m'a permis de cibler la probable source qui provoquerait l'apparition de la popup: j'ai "bricolé" un thème et il est non conforme, pas approuvé et il doit comporter des erreurs. On va oublier ce popup pour l'instant.

En tous les cas, Flatboard m'a instruit, très bien foutu ce modèle IA spécialisé pour Flatboard.

Au plaisir
Pierre

Edited on  Mar 27, 2026  By  314r .

Avatar
Posts 428 1580

Bonjour, ce message de notification "toast" sera désormais supprimé si une clé token est générée depuis le profil.

J’ai amélioré la compréhension globale de l’UX dans plusieurs zones où un utilisateur pouvait se poser des questions.

Je viens également de mettre à jour Flatbot afin qu’il fournisse des réponses plus précises, en s’appuyant sur la documentation officielle, disponible ici : https://docs.flatboard.org/docs, elle aussi mise à jour.

  • Like(1)
    314r314r
Visitor, reply to this topic…
Log in to reply
Navigation
14 Posts
post #1
23 Mar 2026
By Utilisateur
Statistics
166
Discussions
911
Replies
21
Flatboarders
4
Contributors
New member : Emmanuel
Online
26 Guests online