Terms 

Descendant location: A location that is directly beneath another location. 

e.g. Brisbane is a descendant of both Queensland and Australia. 

 

Ancestor location: A location that is directly above another location. 

e.g. Australia is an ancestor of both Melbourne and Queensland. 

 

For the purposes of locational access, sibling locations are considered to be unrelated. 

e.g. Even though Queensland and Victoria share an ancestor (Australia), they can't see eachother's records. You're not allowed to view a location if you have to go up and then back down the hierarchy tree to get to it. 

 

Setup 

Name the locations with " : " between each level of their hierarchy, example: 

LOC-00001 

Australia 

LOC-00002 

Australia : Victoria 

LOC-00003 

Australia : Victoria : Melbourne 

LOC-00004 

Australia : Queensland 

LOC-00005 

Australia : Queensland : Brisbane 

  

It is not necessary to put users in descendants of locations that they're already in (e.g. someone put in Australia : Queensland already gets all Brisbane access 

 

Results 

Main Menu (Location picker) 

Users can choose any location they have access to. They can also choose any locations that are direct descendants (not ancestors) of locations that they have access to. 

 

Views/Lists 

Users can see records from any location they have access to. They can also see records from locations that are direct ancestors OR direct descendants of locations that they have access to. 

 

Dropdown Fields (And other keyword selection fields) 

Users can see keyword options from locations they have access to.  Refer to Display options from under Field Options for more information on how to manage options from Ancestor and Descendant locations.

 

Record Creation 

Unchanged. When a new record is created, its SYS_DOCUMENT_LOCATIONS field is set to the user's location.