# Backend users
 
> Voir les spécifications: https://ressources.opentalent.fr/display/SPEC/Droits+typo3

## Users et groupes

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'éditeurs (edit<subdomain>), où <subdomain> est le sous-domaine du site.

Les droits des be-users varient selon le produit acheté par l'organisation.


## Droits des backend users sur les sites

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 |

> 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)

### Licence Premium

#### 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*  |
| 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* |

> (*) 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*  |
| 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*  |
| 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) |
| 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) |


## Mise en oeuvre

### Principe de mise en oeuvre

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.
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)


### Nouveau client

A la création d'un site dont le sous domaine serait "mysite", on procède ainsi:

1. Créer un groupe 'edit_mysite'
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               |


> 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 :

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 :
>
>    `php /var/www/typo3/vendor/bin/typo3 ot:site:reset-perms --create <organization-id>`


### Si on veut changer les droits associés aux produits

#### Droits issus des groupes de base

Si les droits à modifier sont hérités d'un des groupes de base (Admin Premium, Editor Premium, Admin Standard, 
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 `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

> (L'opération peut prendre quelques minutes)

### Pour ajouter un utilisateur de type éditeur

On créé le be_user correspondant, et on l'affecte au groupe edit_mysite.


###  L'administrateur ou un des éditeurs a été modifié dans le logiciel

On déclenche une update des données des be_users via la commande

    php /var/www/typo3/vendor/bin/typo3 ot:site:reset-perms <organization-id>

Ou en effectuant une requête HTTP à l'adresse:

    GET https://preprod.opentalent.fr/typo3/index.php?route=/otadmin/site/reset-perms&organization-id=<organization-id>

 

 

 

