Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Good morning, I have the following question, I need some fields to be masked according to the user that is logged. In case that user does not have permission to see that program he should see the fields that are not public 'Private'. The records should not be filtered because may have fields that are public and even if they can not see that program, they could see those public fields. For example the total amount of all programs.
To evaluate if a program is public or private for the user that is logging in, you must have the same department and geography as the owner of each program. For example if the user that is logging in is from Spain and Dept1 and having a list of programs like this:
Program Owner Geo_Owner Dept_Owner Amount
Program1 Jose Spain Dept1 200
Program2 Manuel Spain Dept2 300
Program2 María UK Dept1 400
The user should see a table like this:
Program Owner Geo_Owner Dept_Owner Amount
Program1 Jose Spain Dept1 200
Privado Privado Privado Privado 300
Privado Privado Privado Privado 400
I attach a qvf with 4 tables Programs, Assets, Pipeline and Users and an Excel with the table that must be output for the userA. The fields Program, AssetID and PipelineID must be evaluated to see if the data should be viewed or show 'Private', the other fields are public and should always be displayed. The owner's data is at the program level.
Thank you very much in advance.
Yes, but i's not working for that issue because each user can see differents programs depending on his geography and department and the geography and department of the program owner and I couldn't put this condition in the script.
Why don't you create a user program mapping table and then use applymap() and section access to mask the fields you have an issue with.
Take a look on this: Mask or de-identify data for certain users using Section Access
- Marcus
I tried that and It's not working for me. Also I need other table because one user could be permanent insider in geographies different from his own I need to evaluate those geographies with the owner geography.
I attached my qvf with the section access commented so I you could have a look and help me I will appreciate so much.
It's certainly not an easy thing to implement a masking/de-identify logic maybe you tried it in a reverse way - by starting with the example from the link and if it worked you replaced it step by step with your own data.
I don't have Sense available but I think others could take a look on it.
- Marcus
Older top I stumble upon but its possible if you separate your data into different table.
User the functions combiantion of IF, ISNULL, Aggr, and ONLY and the OSUser() function to get the current UserName
if( isnull( Aggr( ONLY({$<Dept=p({$<UserName={'$(=OSUser()'}>}Dept), Geo=p({$<UserName={'$(=OSUser())'}>}Geo)>}UserName),UserName)),'Private',
Aggr( ONLY({$<Dept=p({$<UserName={'$(=OSUser()'}>}Dept), Geo=p({$<UserName={'$(=OSUser())'}>}Geo)>}UserName),UserName)
)
see the attached qvf file, whether if it works with what you need.. i am not sure since only returns null if there's more than 1 record. so long as your USERNAME is unique, then it should return only 1 record, it also return null if the set analysis finds no record of it . Your aggregation has to be UserName as it should be unique