The right way to do this is to have a table of users and their location. The Key field to that user should be the Userid field.
Then on any table where you need to control access you create a formula user field called [Current User] with a formula of
User()
That function will calculate to the current user. Then lookup the location down to the details table.
Then set up Role Permission with a Custom Rule for these users which are restricted by userid location. Maybe that would be a good name for the Role. "Restricted by userid location"
The Custom Rule would be where [location lookup] = location.
Then you just need 1 Role for those 100 users and 1 Dashboard and one set of those 5 reports.