Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Thème admin par utilisateur

  • webcoachonline
  • webcoachonline's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 6 months ago #205803 by webcoachonline
Thème admin par utilisateur was created 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.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 6 months ago #205807 by DenisChenu
Replied by DenisChenu on topic Thème admin par utilisateur
> 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.
  • webcoachonline
  • webcoachonline's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 6 months ago #205809 by webcoachonline
Replied by webcoachonline on topic Thème admin par utilisateur
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.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 6 months ago #205813 by DenisChenu
Replied by DenisChenu on topic Thème admin par utilisateur
J'en ai pas de public …


Mais sinon : tu peux aussi passer par les permission
Code:
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
Code:
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

Lime-years ahead

Online-surveys for every purse and purpose