clj-symphony.user
Operations related to users. A user can be either a human or a service account (bot). Users can be identified in 3 separate ways:
- via a user id - a Long that is globally unique across all pods
- via an email address - a String, though only unique within a pod
- via a username - a String, though only unique within a pod
cross-pod?
(cross-pod? c u)
Returns true
if the given user is in a different pod to the authenticated connection user, or nil
if the user doesn’t exist.
presence
multimethod
(presence c)
(presence c u)
Returns the presence status of a single user, as a keyword. If no user identifier is provided, returns the presence status of the authenticated connection user.
same-pod?
(same-pod? c u)
Returns true
if the given user is in the same pod as the authenticated connection user, or nil
if the user doesn’t exist.
set-presence!
(set-presence! c p)
Sets the presence status of the authenticated connection user. The new presence must be one of presence-states. Note: as of SJC 1.1.0, setting presences of other users is no longer supported.
update-user!
(update-user! c u)
Updates the details of an existing user, returning it as a map (see userobj->map for details). The new user details are provided as a map with these keys:
Key | Description |
---|---|
:user-id |
The id of the user to update. |
:username |
The new username of the user. #### This might be create-only? |
:email-address |
The new email address of the user. |
:title |
The new title of the user. |
:first-name |
The new first name of the user. |
:last-name |
The new last name of the user. |
:display-name |
The new display name of the user. |
:company |
The new company of the user. #### This might be read-only? |
:location |
The new location of the user. |
:avatars |
A sequence of avatar maps (see below). |
:user-id
is mandatory (it must be present and cannot be nil
).
Avatar maps contain these keys:
Key | Description |
---|---|
:size |
The ‘size string’ of the avatar (e.g. small , original ). |
:url |
The URL of the new avatar image file. |
Note: calling this fn requires that the service account have the ‘user administration’ entitlement.
user
(user c)
(user c u)
Returns a user as a map (see userobj->map for details) for the given user identifier, or the authenticated connection user if a user id is not provided.
user-by-username
(user-by-username c u)
Returns a user as a map (see userobj->map for details) for the given username, or nil
if the user doesn’t exist.
userobj
multimethod
(userobj c)
(userobj c u)
Returns a org.symphonyoss.symphony.clients.model.SymUser
object for the given user identifier, or the authenticated connection user if a user id is not provided. User can be specified either as a user id (Long) or an email address (String). Returns nil
if the user doesn’t exist.
Note: providing a user identifier requires calls to the server.
userobj->map
(userobj->map u)
Converts a org.symphonyoss.symphony.clients.model.SymUser
object into a map with these keys:
Key | Description |
---|---|
:user-id |
The id of the user. |
:username |
The username of the user. |
:email-address |
The email address of the user. |
:title |
The title of the user. |
:first-name |
The first name of the user. |
:last-name |
The last name of the user. |
:display-name |
The display name of the user. |
:company |
The company of the user. |
:location |
The location of the user. |
:avatars |
A sequence of avatar maps (see below). |
Avatar maps contain these keys:
Key | Description |
---|---|
:size |
The ‘size string’ of the avatar (e.g. small , original ). |
:url |
The URL of the new avatar image file. |
userobj-by-username
(userobj-by-username c u)
Returns a org.symphonyoss.symphony.clients.model.SymUser
object for the given username, or nil
if the user doesn’t exist.
userobjs
(userobjs c)
Returns all users in the pod, as org.symphonyoss.symphony.clients.model.SymUser
objects. Will throw an exception if the authenticated connection user doesn’t have sufficient permissions.
users
(users c)
Returns all users in the pod as maps (see userobj->map). Will throw an exception if the authenticated connection user doesn’t have sufficient permissions.