2020-01-09 08:31:00 -05:00
|
|
|
Create or modify Account
|
|
|
|
========================
|
|
|
|
|
|
|
|
This API allows an administrator to create or modify a user account with a
|
2020-02-05 16:27:38 -05:00
|
|
|
specific ``user_id``. Be aware that ``user_id`` is fully qualified: for example,
|
|
|
|
``@user:server.com``.
|
2020-01-09 08:31:00 -05:00
|
|
|
|
|
|
|
This api is::
|
|
|
|
|
|
|
|
PUT /_synapse/admin/v2/users/<user_id>
|
|
|
|
|
|
|
|
with a body of:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"password": "user_password",
|
|
|
|
"displayname": "User",
|
2020-02-07 05:29:36 -05:00
|
|
|
"threepids": [
|
|
|
|
{
|
|
|
|
"medium": "email",
|
|
|
|
"address": "<user_mail_1>"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"medium": "email",
|
|
|
|
"address": "<user_mail_2>"
|
|
|
|
}
|
|
|
|
],
|
2020-01-09 08:31:00 -05:00
|
|
|
"avatar_url": "<avatar_url>",
|
|
|
|
"admin": false,
|
|
|
|
"deactivated": false
|
|
|
|
}
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
|
|
|
|
2020-04-28 15:06:03 -04:00
|
|
|
The parameter ``displayname`` is optional and defaults to the value of
|
|
|
|
``user_id``.
|
|
|
|
|
|
|
|
The parameter ``threepids`` is optional and allows setting the third-party IDs
|
|
|
|
(email, msisdn) belonging to a user.
|
|
|
|
|
|
|
|
The parameter ``avatar_url`` is optional. Must be a [MXC
|
|
|
|
URI](https://matrix.org/docs/spec/client_server/r0.6.0#matrix-content-mxc-uris).
|
|
|
|
|
|
|
|
The parameter ``admin`` is optional and defaults to ``false``.
|
|
|
|
|
|
|
|
The parameter ``deactivated`` is optional and defaults to ``false``.
|
|
|
|
|
|
|
|
The parameter ``password`` is optional. If provided, the user's password is
|
|
|
|
updated and all devices are logged out.
|
|
|
|
|
2020-01-09 08:31:00 -05:00
|
|
|
If the user already exists then optional parameters default to the current value.
|
|
|
|
|
2019-12-05 13:12:23 -05:00
|
|
|
List Accounts
|
|
|
|
=============
|
|
|
|
|
|
|
|
This API returns all local user accounts.
|
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
|
|
|
GET /_synapse/admin/v2/users?from=0&limit=10&guests=false
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
2020-04-28 15:06:03 -04:00
|
|
|
|
|
|
|
The parameter ``from`` is optional but used for pagination, denoting the
|
|
|
|
offset in the returned results. This should be treated as an opaque value and
|
|
|
|
not explicitly set to anything other than the return value of ``next_token``
|
|
|
|
from a previous call.
|
|
|
|
|
|
|
|
The parameter ``limit`` is optional but is used for pagination, denoting the
|
|
|
|
maximum number of items to return in this call. Defaults to ``100``.
|
|
|
|
|
|
|
|
The parameter ``user_id`` is optional and filters to only users with user IDs
|
|
|
|
that contain this value.
|
|
|
|
|
|
|
|
The parameter ``guests`` is optional and if ``false`` will **exclude** guest users.
|
|
|
|
Defaults to ``true`` to include guest users.
|
|
|
|
|
|
|
|
The parameter ``deactivated`` is optional and if ``true`` will **include** deactivated users.
|
|
|
|
Defaults to ``false`` to exclude deactivated users.
|
|
|
|
|
|
|
|
A JSON body is returned with the following shape:
|
2019-12-05 13:12:23 -05:00
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"users": [
|
|
|
|
{
|
|
|
|
"name": "<user_id1>",
|
|
|
|
"password_hash": "<password_hash1>",
|
|
|
|
"is_guest": 0,
|
|
|
|
"admin": 0,
|
|
|
|
"user_type": null,
|
2020-04-28 13:19:36 -04:00
|
|
|
"deactivated": 0,
|
2020-04-28 15:06:03 -04:00
|
|
|
"displayname": "<User One>",
|
2020-04-28 13:19:36 -04:00
|
|
|
"avatar_url": null
|
2019-12-05 13:12:23 -05:00
|
|
|
}, {
|
|
|
|
"name": "<user_id2>",
|
|
|
|
"password_hash": "<password_hash2>",
|
|
|
|
"is_guest": 0,
|
|
|
|
"admin": 1,
|
|
|
|
"user_type": null,
|
2020-04-28 13:19:36 -04:00
|
|
|
"deactivated": 0,
|
2020-04-28 15:06:03 -04:00
|
|
|
"displayname": "<User Two>",
|
2020-04-28 13:19:36 -04:00
|
|
|
"avatar_url": "<avatar_url>"
|
2019-12-05 13:12:23 -05:00
|
|
|
}
|
|
|
|
],
|
2020-04-28 13:19:36 -04:00
|
|
|
"next_token": "100",
|
|
|
|
"total": 200
|
2019-12-05 13:12:23 -05:00
|
|
|
}
|
|
|
|
|
2020-04-28 15:06:03 -04:00
|
|
|
To paginate, check for ``next_token`` and if present, call the endpoint again
|
|
|
|
with ``from`` set to the value of ``next_token``. This will return a new page.
|
|
|
|
|
|
|
|
If the endpoint does not return a ``next_token`` then there are no more users
|
|
|
|
to paginate through.
|
2019-12-05 13:12:23 -05:00
|
|
|
|
2017-04-21 06:55:07 -04:00
|
|
|
Query Account
|
|
|
|
=============
|
|
|
|
|
|
|
|
This API returns information about a specific user account.
|
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
2020-01-09 08:31:00 -05:00
|
|
|
GET /_synapse/admin/v1/whois/<user_id> (deprecated)
|
|
|
|
GET /_synapse/admin/v2/users/<user_id>
|
2017-04-21 06:55:07 -04:00
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
|
|
|
|
|
|
|
It returns a JSON body like the following:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"user_id": "<user_id>",
|
|
|
|
"devices": {
|
|
|
|
"": {
|
|
|
|
"sessions": [
|
|
|
|
{
|
|
|
|
"connections": [
|
|
|
|
{
|
|
|
|
"ip": "1.2.3.4",
|
|
|
|
"last_seen": 1417222374433,
|
|
|
|
"user_agent": "Mozilla/5.0 ..."
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"ip": "1.2.3.10",
|
|
|
|
"last_seen": 1417222374500,
|
|
|
|
"user_agent": "Dalvik/2.1.0 ..."
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
``last_seen`` is measured in milliseconds since the Unix epoch.
|
|
|
|
|
|
|
|
Deactivate Account
|
|
|
|
==================
|
|
|
|
|
|
|
|
This API deactivates an account. It removes active access tokens, resets the
|
|
|
|
password, and deletes third-party IDs (to prevent the user requesting a
|
2018-06-26 05:42:50 -04:00
|
|
|
password reset). It can also mark the user as GDPR-erased (stopping their data
|
|
|
|
from distributed further, and deleting it entirely if there are no other
|
|
|
|
references to it).
|
2017-04-21 06:55:07 -04:00
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
2019-05-01 10:18:58 -04:00
|
|
|
POST /_synapse/admin/v1/deactivate/<user_id>
|
2017-04-21 06:55:07 -04:00
|
|
|
|
2018-06-26 05:42:50 -04:00
|
|
|
with a body of:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"erase": true
|
|
|
|
}
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
|
|
|
|
|
|
|
The erase parameter is optional and defaults to 'false'.
|
|
|
|
An empty body may be passed for backwards compatibility.
|
2017-04-21 06:55:07 -04:00
|
|
|
|
|
|
|
|
|
|
|
Reset password
|
|
|
|
==============
|
|
|
|
|
2019-05-31 04:45:46 -04:00
|
|
|
Changes the password of another user. This will automatically log the user out of all their devices.
|
2017-04-21 06:55:07 -04:00
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
2019-05-01 10:18:58 -04:00
|
|
|
POST /_synapse/admin/v1/reset_password/<user_id>
|
2017-04-21 06:55:07 -04:00
|
|
|
|
|
|
|
with a body of:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
2020-03-18 07:50:00 -04:00
|
|
|
"new_password": "<secret>",
|
|
|
|
"logout_devices": true,
|
2017-04-21 06:55:07 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
2019-08-27 05:14:00 -04:00
|
|
|
|
2020-03-18 07:50:00 -04:00
|
|
|
The parameter ``new_password`` is required.
|
|
|
|
The parameter ``logout_devices`` is optional and defaults to ``true``.
|
2019-08-27 05:14:00 -04:00
|
|
|
|
2019-08-27 08:19:19 -04:00
|
|
|
Get whether a user is a server administrator or not
|
|
|
|
===================================================
|
|
|
|
|
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
|
|
|
GET /_synapse/admin/v1/users/<user_id>/admin
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|
|
|
|
|
|
|
|
A response body like the following is returned:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"admin": true
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-08-27 05:14:00 -04:00
|
|
|
Change whether a user is a server administrator or not
|
|
|
|
======================================================
|
|
|
|
|
|
|
|
Note that you cannot demote yourself.
|
|
|
|
|
|
|
|
The api is::
|
|
|
|
|
|
|
|
PUT /_synapse/admin/v1/users/<user_id>/admin
|
|
|
|
|
|
|
|
with a body of:
|
|
|
|
|
|
|
|
.. code:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"admin": true
|
|
|
|
}
|
|
|
|
|
|
|
|
including an ``access_token`` of a server admin.
|