I have been looking at the sqlalchemy recipes on their wiki, but don’t know which one is best to implement what I am trying to do.
Every row on in my tables have an user_id associated with it. Right now, for every query, I queried by the id of the user that’s currently logged in, then query by the criteria I am interested in. My concern is that the developers might forget to add this filter to the query (a huge security risk). Therefore, I would like to set a global filter based on the current user’s admin rights to filter what the logged in user could see.
Appreciate your help. Thanks.
Below is simplified redefined query constructor to filter all model queries (including relations). You can pass it to as
query_clsparameter tosessionmaker. User ID parameter don’t need to be global as far as session is constructed when it’s already available.It works for single model queries only, and there is a lot of work to make it suitable for other cases. I’d like to see an elaborated version since it’s MUST HAVE functionality for most web applications. It uses fixed condition stored in each model class, so you have to modify it to your needs.