2017-11-18 12:44:27 +01:00
|
|
|
# Users data model
|
|
|
|
|
2016-11-08 21:37:37 +01:00
|
|
|
We track different types of users in our browser code.
|
|
|
|
|
|
|
|
There are three disjoint sets of users you care about
|
|
|
|
for typical Zulip realms:
|
|
|
|
|
|
|
|
- active users in your realm
|
2020-01-18 08:56:19 +01:00
|
|
|
- cross-realm users like welcome-bot@zulip.com
|
2016-11-08 21:37:37 +01:00
|
|
|
- deactivated users in your realm
|
|
|
|
|
|
|
|
You can also think in terms of these user populations:
|
|
|
|
|
|
|
|
- current realm users (active users in your realm)
|
|
|
|
- active users (adds cross-realm bots to current realm users)
|
|
|
|
- all users (adds deactivated users from your realm to active users)
|
|
|
|
|
|
|
|
Each of the above categories makes sense for certain UI functions.
|
|
|
|
|
|
|
|
Let's start with the features that are restricted to active realm
|
|
|
|
users, and let's end with features that can apply to all users.
|
|
|
|
|
|
|
|
Only current realm users can...
|
|
|
|
- be subscribed to streams on your realm
|
|
|
|
- be highlighted in the compose-fade feature
|
|
|
|
- show up in your buddy list
|
|
|
|
- show up in your at-mention typeaheads
|
|
|
|
|
|
|
|
Active users can...
|
|
|
|
- be sent PMs to
|
|
|
|
- show up in your compose recipient typeaheads
|
|
|
|
- show up in search suggestions
|
|
|
|
|
|
|
|
All users can...
|
|
|
|
- show up in your message stream
|
|
|
|
- be narrowed to by clicking on recipient bars, etc.
|
|
|
|
- be narrowed to by searches (but not suggested)
|
|
|
|
- can show up in your "Private Messages" sidebar
|
|
|
|
|
|
|
|
We also have the mirroring world, where we have unknown users
|
|
|
|
that we can send PMs to, and local-echo is allowed to create
|
|
|
|
skeleton objects for them. (Typically with mirrors, we are
|
|
|
|
dealing with a third-party chat tool like IRC or Zephyr, and
|
|
|
|
if a user sends a message to a user we don't yet know about,
|
|
|
|
the third party will confirm that the user exists, and we
|
|
|
|
subsequently create a "mirror dummy" user on-demand for that
|
|
|
|
account.)
|