Access control systems and methods regulate access to shared content items
in a corpus using visibility tokens. A user provides other users with
access to a content item by associating a content token with the content
item and associating a matching user token with each user who is to be
granted access. A user who attempts to access the content item succeeds
only if that user has a user token matching the content token associated
with the content item. User tokens can be propagated automatically from
one user to another, e.g., based on trust relationships among the users.
Content tokens can be indexed with content items so that when a user
searches the corpus, a search engine can detect matches between user
tokens and content tokens and filter the search results based on whether
they are visible to the querying user.