Mise en place d'un middle office

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'aimerais savoir quelle serait la meilleure manière de mettre en place un middle office sur Drupal.

Existe-t-il des modules pour cela?

Merci.

Forum : 
Version de Drupal : 

Par défaut, Drupal offre aux profils Non admin la possibilité de gérer du contenu.
On peut avoir des rôles différents, et leur affecter des types d'articles différents.

L'administrateur (utilisateur initial) est le grand manitou, mais pour les autres ils n'ont accès qu'à la création de contenu. Le paramétrage de qui a droit à quoi se fait dans la partie Administration / Gestion des Utilisateurs / Contrôles d'accès.

http://monsite/admin/user/access

Dans l'absolu, je souhaiterais conserver le template admin de base pour le grand manitou et un template proche de celui du front pour les autres.

Drupal permet cette différenciation des templates en fonction des types d'utilisateur?

Si tu entends "thème" par template, tu peux en effet mettre en place un thème spécifique pour ton middle office. Il doit y avoir un joli module qui fait cela tout seule, sinon ça se fait par trois lignes de code dans un module custom.

Si c'est ça, je ne sais pas pour le module magique, mais pour le code dans un module custom, ça donnerait ça :

<?php
 
function mon_module_init() {
    global
$user;
 
$rids = array_keys($user->roles);
       
// 3 serait l'id du rôle "middle office", à remplacer par la bonne valeur de la table 'role'
       
if (in_array(3,$rids) && strpos($_GET['q'], 'admin')===0) {
     global
$custom_theme;
     
$custom_theme = 'mon_theme_admin_special';       
        }
  }
?>