Presenter Adaptive - security
For optimal performance, avoid joining the hierarchy in every source as it adds more querying time.
Instead create a stored value that fetches the Payee selected, then use that stored value as the filtering for all other sources. This ensures sources are filtered based on the reporting hierarchy.
If a user changes the URL to a Payee not in their hierarchy the Stored Value will evaluate to NULL and the objects will not show up.
This requires adding a PayeeIDText field to the Payee table since we need a non-key version of PayeeID for the output of the stored value.
PayeeIDText should be the same as PayeeID and can be mapped to both columns during import.
Creating a stored value
Join the Hierarchy calculation and Payee table and output the following fields in the data store:
MangerPayeeID (PK)
PayeeID (PK)
Periods (PK)
PayeeIDText (non-key)
Create a stored value called vaSelectedPayee with the following restrictions:
MangerPayeeID = WebUser
PayeeID = plPayee (this is the selected filter payee)
Periods = plPeriod (this is the selected filter month)
PayeeIDText (non-key)
Use vaSelectedPayee to filter all sensitive objects in the report.