Thème admin par utilisateur

More
1 year 3 months ago #205803 by webcoachonline
Bonjour,

Dans une install LS 3.16.1+190314, j'ai plusieurs utilisateurs: un admin et plusieurs autres non-admin.
Ces utilisateurs ont uniquement ces droits:
"Permission de créer ses propres contacts dans la base centrale des participants (ce qui donne toutes les permissions sur ceux-ci) et visualiser, modifier ou supprimer les contacts des autres utilisateurs"

Je leur ai attribué certains questionnaires.
Mais j'aimerais bien masquer les options pour modifier les questions,etc... j'aimerais qu'ils puissent se connecter à l'admin uniquement pour envoyer les invitations aux participants et voir / télécharger les résultats des questionnaires (sous forme de PDF avec le plugin Lime PDF).

Je sais que les ACL actuels de limesurvey ne permettent pas cela alors j'ai pensé à masquer tous les boutons de modification, enfin, tout ce que je ne veux pas que l'utilisateur voie avec du CSS dans un template admin. Ce n'est, certes, pas la meilleure solution en termes de sécurité (un utilisateur malin pourrait analyser le code et visualiser ce qui est masqué) mais ça me permet de montrer une idée de ce que serait cette interface admin personnalisée.

Dans la doc de LS j'ai trouvé ça:
manual.limesurvey.org/Custom_Admin_Themes


Y-a-t-il un moyen d'utiliser un thème dans l'admin en fonction de l'utilisateur qui y est connecté?

Ou alors de gérer les invitations sans passer par l'admin de LS?

Merci pour vos lumières ;-)
The topic has been locked.
More
1 year 3 months ago #205807 by DenisChenu
> Ce n'est, certes, pas la meilleure solution en termes de sécurité (un utilisateur malin pourrait analyser le code et visualiser ce qui est masqué) mais ça me permet de montrer une idée de ce que serait cette interface admin personnalisée.

Ce n'est pas prévu, c'est une bonne idée, mais pas prévue.

Pour gérer ce genre de situation : j'utilise un plugin ajoutant (ou non) un script js selon l'utilisateur. Loin d'être parfait aussi …

> Ou alors de gérer les invitations sans passer par l'admin de LS?
C'est via l'API : manual.limesurvey.org/RemoteControl_2_API

Je me demande ou en est SurveyPress : wordpress.org/plugins/surveypress/

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development . I don't answer to private message.
The topic has been locked.
More
1 year 3 months ago #205809 by webcoachonline
Bonjour Denis,

Merci pour la réponse,

Quel est ton plugin qui ajoute le js par utilisateur et comment l'installer / configurer?

Pour la suite, je comptais aussi tester surveypress pour synchroniser les comptes utilisateurs avec les comptes limesurvey et pourquoi pas, l'API remote control pour gérer les invitations depuis une page privée d'utilisateur de WP?

En tout cas, la première solution me semble plus facile...
The topic has been locked.
More
1 year 3 months ago #205813 by DenisChenu
J'en ai pas de public …


Mais sinon : tu peux aussi passer par les permission
class myPerms extends AuthPluginBase
{
    protected $storage = 'DbStorage';
 
    static protected $description = 'A plugin to give specific Permissions';
    static protected $name = 'myPerms';
 
    public function beforeHasPermission() {
        static $aPermissionStatic;
        $oEvent = $this->getEvent();
        $iEntityID = $oEvent->get('iEntityID');
        $sEntityName = $oEvent->get('sEntityName');
        $sPermission = $oEvent->get('sPermission');
        $sCRUD = $oEvent->get('sCRUD');
        $iUserID = $oEvent->get('iUserID');
        $controller = null;
        $action = null;
        if(Permission::isForcedSuperAdmin($iUserID)) {
            // Forced superadmin: no uodate
            return;
        }
        if(empty($iUserID)) {
            $iUserID = Permission::getUserId();
        }
        if($sPermission=='surveyactivation') {
            $oEvent->set('bPermission', false);
        }
    }
}
Ici : activer ou désactiver les questionnaires.

Mais je pense que tu peux peut être faire un
if($sPermission !== 'responses' or $sPermission !== 'token') {
            $oEvent->set('bPermission', false);
        }

Normalement : en fonction des droits : les boutons sont actifs ou non.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development . I don't answer to private message.
The topic has been locked.
Moderators: Nickko

Start now!

Just create your account and start using Limesurvey today.

Register now