Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
OmarBenSalem

Help with section access logic

Hi folks,

My requirement is rather simple but I do not know how to implement it;

I have an application with a field : NAME which contains the DOMAIN\UserID of each user (example : Domain\obensalem)

What I aim to do is the follow:

1)Some users of a certain group can see the whole application

2)for the other users (not part of the group), they'll see ONLY the data related to their Name.

1) I know how to do the first part:

SECTION ACCESS;
load * Inline [
ACCESS, USERID, GROUP, DIM1
ADMIN, *, _managers-dsi,
USER, *, informatica, A

];

section Application;

 

2) I don't know how to do the second part dybnamically : each USERID sees the data of its Name=its USERID 

I only know how to do it user by user ... 

SECTION ACCESS;

load * Inline [
ACCESS, USERID, NAME
USER, EUCLIDE-APEC\OBENSALE, EUCLIDE-APEC\OBENSALE
];
section Application;

 

3) don't know how to combine the 1 and 2 

Users of one group see all

Users not part of the specific group see only the data of USERID=NAME (field of the app)

Hope someone will help !

@Dalton_Ruer  @Fredrik_Lautrup 

9 Replies
Gysbert_Wassenaar

Simply put the group names in the userid column as well. So for each group add a record and use the group name as userid. Make sure to put the domain name in front of the group name just like you do with users.


talk is cheap, supply exceeds demand
OmarBenSalem
Author

Thanks Gysbert

I'm really not an expert of section access; thus, can u please elaborate this with an example?

U can use the "data" I've shared

 

Is this what u mean?

SECTION ACCESS;

load * Inline [
ACCESS, USERID, GROUP, NAME
ADMIN, *, _managers-dsi,
USER, EUCLIDE-APEC\OBENSALE,*, EUCLIDE-APEC\OBENSALE
];
section Application;

 

 

Gysbert_Wassenaar

SECTION ACCESS;

load * Inline [
ACCESS, USERID, NAME
USER, EUCLIDE-APEC\OBENSALE, EUCLIDE-APEC\OBENSALE
ADMIN,  EUCLIDE-APEC\_MANAGERS-DSI, EUCLIDE-APEC\_MANAGERS-DSI
USER, EUCLIDE-APEC\INFORMATICA, EUCLIDE-APEC\INFORMATICA
];


section Application;


talk is cheap, supply exceeds demand
OmarBenSalem
Author

I see !
BUT, I have more than 1000 users;
Thus, I can't enter them one by one...
How to do to make the USERID see only the data of the NAME=USERID dynamically?
Gysbert_Wassenaar

I'm afraid one of use is totally missing the point.

1. You don't have to use an inline load. You can load from a text file or a database too.

2. If you're  using Active Directory you can create AD groups and make users members of those groups. Then you can use the names of these AD groups in the Section Access table. The AD user or group name in the form DOMAINNAME\USERNAME is what you enter in the USERID column.

Does that help or did I just answer the wrong questions?


talk is cheap, supply exceeds demand
OmarBenSalem
Author

Let explain better;

I have around 1000 users; in the application, it's sthing like this:

Name, field1,field2,field3

User1, a,b,c

User2, x,y,z

.... (etc)

What I did, is that I transformed the Name field of the application so that would be exactly as the USERID of the QMC (domain\UserID)

and what I want to do is, each user , when he opens the application, he'll only see the data related to him (associated to its Name in the application)

 

The if User1 logs in, he'll only see data for Name=User1 => a b and c..

Hope that was clear?

Now, when I have more than 1k users, I must find a dynamic way in the section access to allow EACH USERID to see only data of NAME=USERID...

 

But, if I fully understand, what could be used is creating the section access as an excel file, with the column NAME of the application, and replicate it as USERID?

I'll try that !

Gysbert_Wassenaar

But, if I fully understand, what could be used is creating the section access as an excel file, 
with the column NAME of the application, and replicate it as USERID?

Yes, that should work.


talk is cheap, supply exceeds demand
OmarBenSalem
Author

I have this:

 

[PROFILS]:
LOAD distinct
DATE_CONSO,
NUMERO_COMPTE,
CADRE_NOM,
CADRE_PRENOM,
NUMERO_RH,
NOM,
PRENOM,
'EUCLIDE-APEC\'&upper(left (replace(replace(replace( Replace(PRENOM,' ',''),'-',''),'_',''),'.',''),1))
&upper(left( replace(replace(replace( Replace(NOM,' ',''),'-',''),'_',''),'.',''),7)) as KEY,
CENTRE,
REGION,
PUBLICATION
;

Capture.PNG

Now, I did this:

 
SECTION ACCESS;

Load 'USER' as ACCESS,
KEY as USERID,
KEY Resident PROFILS;

load 'ADMIN' as ACCESS,
'EUCLIDE-APEC\INFORMATICA' as USERID,
'EUCLIDE-APEC\INFORMATICA' as KEY
AutoGenerate 1;

section Application;

 

Now, logically, as I'm part of the INFORMATICA, I should be able to see all the data of the application?

But the access is denied.

Capture.PNGI've also tried this, with the same result:

SECTION ACCESS;
load 'ADMIN' as ACCESS,
'*' as USERID,
'EUCLIDE-APEC\INFORMATICA' as GROUP,
'' as KEY
AutoGenerate 1;

load 'USER' as ACCESS,
KEY as USERID,
'*' as GROUP,
KEY Resident PROFILS;

section Application;

Am I doing sthing wrong?

 

ps: both approaches worked with inline tables 

 

with this,

 Capture.PNG

I only see the Value A:

Capture.PNG

While users of the _manegers-dsi group see all values

OmarBenSalem
Author

This works : 

SECTION ACCESS;

load * Inline [
ACCESS, USERID, GROUP, KEY
ADMIN, *, informatica,

];
section Application;

 

While this does not :

load 'ADMIN' as ACCESS,
'*' as USERID,
'informatica' as GROUP,
'' as KEY
AutoGenerate 1;