Quellcode durchsuchen

fix new structure details page security

Olivier Massot vor 2 Jahren
Ursprung
Commit
49f1e7b36b
2 geänderte Dateien mit 67 neuen und 66 gelöschten Zeilen
  1. 65 65
      doc/be_users.md
  2. 2 1
      ot_admin/Classes/Controller/SiteController.php

+ 65 - 65
doc/be_users.md

@@ -6,9 +6,9 @@
 
 Le super admin est l'utilisateur 'oaos', réservé à un usage interne.
 
-Pour chaque site Typo3, il doit exister **un seul** compte admin (admin<subdomain>), et **un seul** groupe d'editeurs (edit<subdomain>), où <subdomain> est le sous-domaine du site.
+Pour chaque site Typo3, il doit exister **un seul** compte admin (admin<subdomain>), et **un seul** groupe d'éditeurs (edit<subdomain>), où <subdomain> est le sous-domaine du site.
 
-Les droits des beusers varient selon le produit acheté par l'organisation.
+Les droits des be-users varient selon le produit acheté par l'organisation.
 
 
 ## Droits des backend users sur les sites
@@ -16,13 +16,13 @@ Les droits des beusers varient selon le produit acheté par l'organisation.
 Ce paragraphe présente les droits des be_users sur les pages et contenus du site: création, édition, suppression...
 
 
-| Autorisations disponibles sur les pages | Code |
-| --- | --- |
-| Show | Afficher/Copier la page et le contenu | 1 |
-| Edit content | Modifier/Ajouter/Supprimer/Déplacer le contenu | 16 |
-| Edit page | Modifier la page, par ex. changer le titre de la page, etc | 2 |
-| Delete | Supprimer/déplacer la page et le contenu | 4 |
-| New | Créer de nouvelles pages sous cette page | 8 |
+| Autorisations disponibles sur les pages | Code                                                       |
+|-----------------------------------------|------------------------------------------------------------|
+| Show                                    | Afficher/Copier la page et le contenu                      | 1 |
+| Edit content                            | Modifier/Ajouter/Supprimer/Déplacer le contenu             | 16 |
+| Edit page                               | Modifier la page, par ex. changer le titre de la page, etc | 2 |
+| Delete                                  | Supprimer/déplacer la page et le contenu                   | 4 |
+| New                                     | Créer de nouvelles pages sous cette page                   | 8 |
 
 > Les valeurs de N1 et N2 sont calculées en additionnant les valeurs suivantes: show (1), edit content (16), edit page (2), 
 > delete (4), add (8)
@@ -31,77 +31,77 @@ Ce paragraphe présente les droits des be_users sur les pages et contenus du sit
 
 #### Admin Premium
 
-| Page | Show | Edit content | Edit page | Delete | New  | Code |
-| --- | --- | --- | --- | --- | ---  | --- |
-| Home | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *27* |
-| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *9* |
-| Adhérents, membres du CA, évènements, évènements des structures, structures adhérentes | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *11* |
-| Autres pages | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | *31* |
+| Page                                               | Show               | Edit content       | Edit page          | Delete             | New                | Code |
+|----------------------------------------------------|--------------------|--------------------|--------------------|--------------------|--------------------|------|
+| Home                                               | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *27* |
+| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *9*  |
+| Menu Présentation (*)                              | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *11* |
+| Autres pages                                       | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | *31* |
 
-#### Editeur Premium
-
-| Page | Show | Edit content | Edit page | Delete | New  | Code |
-| --- | --- | --- | --- | --- | ---  | --- |
-| Home | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *17* |
-| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Adhérents, membres du CA, évènements, évènements des structures, structures adhérentes | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Autres pages | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *27* |
+> (*) Inclut les pages : Adhérents, membres du CA, évènements, évènements des structures, structures adhérentes, informations pratiques
 
+#### Editeur Premium
 
+| Page                                               | Show               | Edit content       | Edit page          | Delete             | New                | Code |
+|----------------------------------------------------|--------------------|--------------------|--------------------|--------------------|--------------------|------|
+| Home                                               | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *17* |
+| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Menu Présentation (*)                              | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Autres pages                                       | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![v](images/v.svg) | *27* |
 
 ### Licence Standard
 
 #### Admin Standard
 
-| Page | Show | Edit content | Edit page | Delete | New  | Code |
-| --- | --- | --- | --- | --- | ---  | --- |
-| Home | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *19* |
-| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Adhérents, membres du CA, évènements, évènements des structures, structures adhérentes | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Autres pages | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *27* |
+| Page                                               | Show               | Edit content       | Edit page          | Delete             | New                | Code |
+|----------------------------------------------------|--------------------|--------------------|--------------------|--------------------|--------------------|------|
+| Home                                               | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *19* |
+| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Menu Présentation (*)                              | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Autres pages                                       | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *27* |
 
 #### Editeur Standard
 
-| Page | Show | Edit content | Edit page | Delete | New  | Code |
-| --- | --- | --- | --- | --- | ---  | --- |
-| Home | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *17* |
-| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Adhérents, membres du CA, évènements, évènements des structures, structures adhérentes | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1* |
-| Autres pages | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *19* |
+| Page                                               | Show               | Edit content       | Edit page          | Delete             | New                | Code |
+|----------------------------------------------------|--------------------|--------------------|--------------------|--------------------|--------------------|------|
+| Home                                               | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *17* |
+| footer/* (mentions légales, contact, plan du site) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Menu Présentation (*)                              | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *1*  |
+| Autres pages                                       | ![v](images/v.svg) | ![v](images/v.svg) | ![v](images/v.svg) | ![x](images/x.svg) | ![x](images/x.svg) | *19* |
 
 
 ## Accès aux menus
 
 Ce paragraphe présente les menus du backend disponibles selon le type de compte.
 
-| Page | Admin Premium | Editor Premium |   | Admin Standard | Editor Standard |
-| --- | --- | --- | --- | --- | --- |
-| Web - Page | ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
-| Web - Liste | ![v](images/v.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Web - Formulaires | ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
-| Web - Corbeille | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Web - Info | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Web - Personnaliser | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
-| Web - Statistiques | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
-| Web - Gestion des actualités  |  ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
-| Gestionnaire de site - Redirects | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Fichier - Fichiers | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
+| Page                                           | Admin Premium      | Editor Premium     |   | Admin Standard     | Editor Standard    |
+|------------------------------------------------|--------------------|--------------------|---|--------------------|--------------------|
+| Web - Page                                     | ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
+| Web - Liste                                    | ![v](images/v.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Web - Formulaires                              | ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
+| Web - Corbeille                                | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Web - Info                                     | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Web - Personnaliser                            | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
+| Web - Statistiques                             | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
+| Web - Gestion des actualités                   | ![v](images/v.svg) | ![v](images/v.svg) |   | ![v](images/v.svg) | ![v](images/v.svg) |
+| Gestionnaire de site - Redirects               | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Fichier - Fichiers                             | ![v](images/v.svg) | ![x](images/x.svg) |   | ![v](images/v.svg) | ![x](images/x.svg) |
 | Outils Utilisateur - Configuration utilisateur | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Aide - A propos de... | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
-| Aide -Manuel TYPO3 | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Aide - A propos de...                          | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
+| Aide -Manuel TYPO3                             | ![x](images/x.svg) | ![x](images/x.svg) |   | ![x](images/x.svg) | ![x](images/x.svg) |
 
 
 ## Mise en oeuvre
 
 ### Principe de mise en oeuvre
 
-Pour un site 'mywebsite', on va créer un beuser admin et un groupe dédié. Au départ, l'admin est le seul membre de ce groupe, 
+Pour un site 'mywebsite', on va créer un be-user admin et un groupe dédié. Au départ, l'admin est le seul membre de ce groupe, 
 mais d'autres users (les éditeurs) pourront y être ajoutés par la suite.
 
 Ce groupe permet de contrôler les droits de base sur les pages du site (créer, éditer...), droits qui sont communs à l'administrateur et aux éditeurs.  
 L'admin reçoit, en tant que propriétaire des pages du site, des droits d'accès supplémentaires (comme la suppression)
 
-Ce groupe est lui même un sous-groupe du groupe 'EditorStandard' ou 'EditorPremium', selon le produit acheté par la structure.
+Ce groupe est lui-même un sous-groupe du groupe 'EditorStandard' ou 'EditorPremium', selon le produit acheté par la structure.
 Enfin, les admins sont aussi membres du groupe 'AdminStandard' ou 'AdminPremium', qui leur donnent accès aux modules réservés à l'administration (ex: 'Personnaliser')
 
 ![schema](images/schema_droits_beusers.svg)
@@ -112,34 +112,34 @@ Enfin, les admins sont aussi membres du groupe 'AdminStandard' ou 'AdminPremium'
 A la création d'un site dont le sous domaine serait "mysite", on procède ainsi:
 
 1. Créer un groupe 'edit_mysite'
-1. Créer un be_user 'admin_mysite'
-1. Ajouter le be_user 'admin_mysite' au groupe 'edit_mysite'
-1. Ajouter le be_user 'admin_mysite' au groupe 'AdminStandard' ou 'AdminPremium' (selon le produit)
-1. Ajouter le groupe 'edit_mysite' au groupe WriterBasic ou WriterFull, selon la nature du produit
+2. Créer un be_user 'admin_mysite'
+3. Ajouter le be_user 'admin_mysite' au groupe 'edit_mysite'
+4. Ajouter le be_user 'admin_mysite' au groupe 'AdminStandard' ou 'AdminPremium' (selon le produit)
+5. Ajouter le groupe 'edit_mysite' au groupe WriterBasic ou WriterFull, selon la nature du produit
 
 
 
 On attribue ensuite les droits en mettant à jour les champs suivants:
 
-| perms_userid | perms_groupid | perms_user | perms_group | perms_everybody |
-| --- | --- | --- | --- | --- |
-| uid de admin_mysite | uid de edit_mysite | N1* | N2* | 0 |
+| perms_userid        | perms_groupid      | perms_user | perms_group | perms_everybody |
+|---------------------|--------------------|------------|-------------|-----------------|
+| uid de admin_mysite | uid de edit_mysite | N1*        | N2*         | 0               |
 
 
-> Toutes ces opérations sont automatisées et peuvent être exécutées via la commande:
+> Toutes ces opérations sont automatisées et peuvent être exécutées via la commande :
 >
 >    `php /var/www/typo3/vendor/bin/typo3 ot:site:reset-perms --create <organization-id>`
 
 
 ### La structure change de produit
 
-Pour mettre à jour les droits des be_users , par exemple après un changement de produit:
+Pour mettre à jour les droits des be_users, par exemple après un changement de produit :
 
-1. On met à jour les droits sur les pages de 'admin_mysite' et 'edit_mysite' (cf paragraphe précédent) avec la commande ot:site:reset-perms
-1. On retire le groupe 'edit_mysite' de son groupe actuel
-1. On ajoute le groupe 'edit_mysite' au groupe Editor Standard ou Editor Premium, selon la nature du produit
+1. On met à jour les droits sur les pages de 'admin_mysite' et 'edit_mysite' (cf. paragraphe précédent) avec la commande `ot:site:reset-perms`
+2. On retire le groupe 'edit_mysite' de son groupe actuel
+3. On ajoute le groupe 'edit_mysite' au groupe Editor Standard ou Editor Premium, selon la nature du produit
 
-> Toutes ces opérations sont automatisées et peuvent être exécutées via la commande:
+> Toutes ces opérations sont automatisées et peuvent être exécutées via la commande :
 >
 >    `php /var/www/typo3/vendor/bin/typo3 ot:site:reset-perms --create <organization-id>`
 
@@ -154,7 +154,7 @@ Editor Standard, alors il suffit de modifier le ou les groupes concernés.
 
 #### Droits d'accès aux pages
 
-Pour modifier les droits sur les pages, on fera d'abord évoluer la commande la commande ot:site:reset-perms, puis on l'exécute sur tous les sites avec l'option '–all'
+Pour modifier les droits sur les pages, on fera d'abord évoluer la commande `ot:site:reset-perms`, puis on l'exécute sur tous les sites avec l'option '–all'
 
     php /var/www/typo3/vendor/bin/typo3 ot:site:reset-perms --all --create
 

+ 2 - 1
ot_admin/Classes/Controller/SiteController.php

@@ -1739,7 +1739,8 @@ class SiteController extends ActionController
                 $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->membersCa' ||
                 $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->structures' ||
                 $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->events' ||
-                $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->structuresEvents'
+                $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->structuresEvents' ||
+                $page['tx_fed_page_controller_action'] === 'OpenTalent.OtTemplating->structureDetails'
             ) {
                 $adminPerms = self::PERM_SHOW;
                 if ($isPremium)  {