Voici une stratégie générale de mise en place des accès aux contenus avec le plugin “Restrict user access” : testée sur wp2 sur catégorie CD (seuls niveaux 1 à 4) et sur 1 utilisateur, à mieux tester pour généralisation.
La reconstruction d’un site avec une structure bien définie et “propre”, pour installer au mieux les héritages au sein des catégories, semble s’imposer…

– Nos contenus WordPress (pages, articles…) sont publics (par défaut) sauf les catégories CD et Animateurs, ainsi que ceux marqués Privé (étiquette)… et autres objets plus tard…
– Pour chaque catégorie non publique, un niveau de membres “éditeurs” est défini (avec permissions), ainsi que pour les activités [alpi – yoga] (niveau activites-éditeur commun pour commencer ?)
– On fait simple : un utilisateur est soit non connecté (visiteur), soit connecté et alors simple lecteur ou éditeur (rôle editor) sur des zones déterminées du site
– Des “niveaux” d’accès (cf ci-dessous) lui permettent d’accéder à des contenus non publics, en lecteur ou éditeur.

  • Moyens (testé sur wp2 seul, très long pour trouver cette pourtant simple solution…)

– Problème: WordPress donne les rôles (Editeur…) sur tous les articles et pages du site
– AAM ne permet pas de définir un accès par défaut pour tous, ou par catégories (version payante), mais il permet une définition fine des accès (et bien pour vérifier…)
– Restrict User Access définit des “niveaux” avec une restriction par catégories, mais les utilisateurs connectés gardent en plus leurs accès WordPress (sur tout par défaut) ;
– Il faut donc commencer par restreindre tous les accès puis définir ceux que l’on veut
– On peut cocher l’héritage au sein d’une hiérarchie (catégorie…), MAIS ce sera actif pour les objets créés après création du niveau => créer des niveaux avec catégories vides, puis les sous-catégories aussitôt après df du niveau
– il peut y avoir héritage entre niveaux (extend), pas bien testé
– au sein d’un niveau : au moins un sous-niveau “<niveau>-editeur” est donné à des membres qui ont aussi le rôle éditeur
– Restrictions sur les menus, widgets… : par AAM ?
– Les “rôles” et les “niveaux” des grands groupes d’utilisateurs (CD, Animateur) seront définis par l’importation de fichiers csv (pas testé pour import des niveaux) : ça crée un état initial défini et stable.
N.B.
a) Tout ceci peut largement interférer avec certains paramétrages antérieurs de plugins (groups, AAM, rôles et groupes spécifques…) qu’il faudrait commencer par nettoyer
b) Il faut que très vite nos comptes de tests soient distincts des futurs comptes utilisés, et avec des emails uniques : sinon nos utilisateurs de la comminfo ne peuvent pas tester avec leurs vrais rôles au sein d’ANV…

  1. Niveau aucun-acces (supprime tous accès à tous users (sauf Page 404 et admins)
    – Conditions: NON Page 404
    – Membres: Administrator
    – Permissions: Deny (tout)
    – Options: Rediriger Bonjour… (pas d’extend)
  2. Niveau visiteur (accès en lecture non connecté)
    – Conditions: NON Categories: CD, Animateur OU NON Etiquette Privé
    – Membres: non connecté
    – Permissions: Permit:1 Read, Deny: 0
    – Options: Rediriger A la Une (pas d’extend)
  3. Niveau cd-lecteur  (+ cat. animateur…) (accès lecture sur cat. CD et pas les autres)
    – Conditions: Categories: CD OU NON Categories (toutes les autres à interdire)
    – Membres: vialserge (+ tard le CD)
    – Permissions: Permit:1 Read, Deny: 0
    – Options: Rediriger A la Une (pas d’extend)
  4. Niveau cd-editeur
    (accès editor sur cat. CD et pas les autres: il faut AUSSI avoir le rôle editor)
    – Conditions: Categories: CD OU NON Categories (toutes les autres à interdire)
    – Membres: vialserge Editeurs du CD
    – Permissions: Permit:86, Deny: 0
    – Options: Rediriger A la Une (pas d’extend)
  5. Niveau anim-lecteur (les animateurs)
    à faire
  6. Niveau anim-editeur (inutile si webmestres)
    à faire ?
  7. Niveau alpi-editeur (pour chaque activité) ou commun activites-editeur
    à faire, d’abord supprimer les catégories de chaque activité pour héritages automatiques ?

Sergio, 8 juillet 2019