Hello Everyone,
Just tried to launch my online for our vendors and No can Do.
Very Strange,
I have a security Filter than is the Following
OR(In(useremail(),Admin Emails[Email]), In([ID], SELECT(Security Filters[Vendors], [email]=useremail())))
Note, this expression could significantly impact sync time.
ANY of these statements is true:
โฆ1: (USEREMAIL()) is one of the values in the list (ADMIN EMAILS[Email])
โฆ2: (The value of column โidโ) is one of the values in the list (The list of values of column 'Vendorsโ
โฆfrom rows of table 'SECURITY FILTERSโ
โฆwhere this condition is true: ((The value of column โEmailโ) is equal to (USEREMAIL())))
Admin Emails Work perfecly, Everyone onsite here can see everything. I removed my own email from admin emails and added to a few vendors in the Security Filter Table, and this works completly fine, problem is when somone elses email is added to security filter table for certain vendors they see nothing.
Security Filter Table
Vendor Table
Iโm have no idea what Iโm doing wrong and thought i had it all figured out. Also tried contains etc but to no avail. I dont understand why it is working for my email and not for others. Extremly frustrating. Ugh
Solved! Go to Solution.
Hi @Jonathan_S. What type of column is Vendors
? The fact that itโs plural makes me suspect that itโs an EnumList. If thatโs the case, then SELECT(Security Filters[Vendors], [email]=useremail())
will return a list of EnumList values. That means youโre checking to see if ID
is in a list of EnumLists, which will always return false.
If thatโs all correct, then I could see two different ways of fixing this:
(1) Change your security filter to check to see if there are any rows that have ID
in their vendor lists. Something like this:
COUNT(
SELECT(
Security Filters[Id],
AND([email] = USEREMAIL(), IN([_THISROW].[ID], [Vendors]))
)
) > 0
(2) Change your Security Filter table to have a single vendor per row (instead of an EnumList). Then your security filter would have something like:
IN([ID], SELECT(Security Filters[Vendor], [email] = USEREMAIL()))
(note that Vendor
is singular - thatโs the change to your schema).
Hi @Jonathan_S. What type of column is Vendors
? The fact that itโs plural makes me suspect that itโs an EnumList. If thatโs the case, then SELECT(Security Filters[Vendors], [email]=useremail())
will return a list of EnumList values. That means youโre checking to see if ID
is in a list of EnumLists, which will always return false.
If thatโs all correct, then I could see two different ways of fixing this:
(1) Change your security filter to check to see if there are any rows that have ID
in their vendor lists. Something like this:
COUNT(
SELECT(
Security Filters[Id],
AND([email] = USEREMAIL(), IN([_THISROW].[ID], [Vendors]))
)
) > 0
(2) Change your Security Filter table to have a single vendor per row (instead of an EnumList). Then your security filter would have something like:
IN([ID], SELECT(Security Filters[Vendor], [email] = USEREMAIL()))
(note that Vendor
is singular - thatโs the change to your schema).
Thank you sir
User | Count |
---|---|
41 | |
28 | |
28 | |
23 | |
13 |