What do you think about creating a new Couch view called `location_hierarchy_by_user` and build there a tree similar to `location_hierarchy` view? In order to make such view I would need to add `users` field to `Location`. Besides that, I would need to handle location parents and descendants. I think of two ways to resolve this:
* during adding location to user, add user_id to all users lists in all parent and descendants locations, so code of the view could be something like this: http://pastebin.com/Nqjcfvnn
* or save user_id only in descendants - I would create another field in `Location` model, called eg. `users_of_parent_locations`, so I would handle building the tree for descendants the same way like in previous point, while for parent locations I would use `doc.lineage` property and do `emit` for every location in the lineage. This view can look something like this: http://pastebin.com/xVdDtbRp

Let me know if my thoughts are not clear enough, I'll try to come up with a better explanation / example.