Bonjour,
J’ai une application qui va être utilisée par plusieurs sociétés, j’ai créé mon script de sécurité et attribué aux differents utilisateurs des groupes :
Avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 SET vApplication='COMMERCIAUX'; SECTION Access; LOAD UPPER(ACCESS) as ACCESS, UPPER(USERID) as USERID, UPPER(PASSWORD) as PASSWORD, UPPER(NTNAME) as NTNAME, UPPER(GROUPE) as GROUPE FROM C:\QLIKVIEW\03_SOURCES_EXTERNES\Securite\Securites_QlikView.xlsx (ooxml, embedded labels, table is ACCESS) WHERE APPLICATION='$(vApplication)'; STAR is *; FILTRAGE: LOAD UPPER(GROUPE) as GROUPE, PrjSociete FROM C:\QLIKVIEW\03_SOURCES_EXTERNES\Securite\Securites_QlikView.xlsx (ooxml, embedded labels, table is FILTRAGE) WHERE APPLICATION='$(vApplication)'; SECTION Application;
ACCESS, NTNAME,GROUPE
ADMIN, ADMIN,ADMIN
USER,RespSociete1,Societe1
USER,RespSociete2,Societe2
Le script fonctionne très bien.
Ensuite j’ai voulu créer une variable permettant d’identifier l’utilisateur en tant qu’admin. Je me sers de cette pour conditionner l’affichage de certaines feuilles/objets.
Pour faire cette variable j’ai rajouter à la suite du script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ADMIN: LOAD UPPER(ACCESS) as ACCESS, UPPER(GROUPE) as GROUPE, if(USERID='*',NTNAME,if(NTNAME='*',USERID)) as Admin_User_Name FROM C:\QLIKVIEW\03_SOURCES_EXTERNES\Securite\Securites_QlikView.xlsx (ooxml, embedded labels, table is ACCESS) WHERE APPLICATION='$(vApplication)'and ACCESS='ADMIN';
Puis pour ma variable j’ai trouvé ce code sur un forum qui fonctionne assez bien :
vAdmin=concat(chr(39) & Admin_User_Name & chr(39),',')
IsAdmin=WildMatch(OSUser(),$(vAdmin))
Quand je veux conditioner l’affichage d’un objet j’ai simplement a placer =$(IsAdmin) c’est parfait.
Maintenant je voudrais pouvoir faire la meme chose au niveau des groupes :
Si un utilisateur de la societe 1 se connecte je veux pouvoir conditionner l’affichage des indicateurs de la societe 2 uniquement pour les utilisateurs de la societe 2 et les admin et inversement…)
Je pourrais dupliquer ma précédente table en créant autant de table qu’il y a de groupe et en modifiant mon WHERE pour faire une requete par groupe mais je pense qu’il y a moyen de faire beaucoup plus simple.
Une idée ?
Partager