mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
* Allow Users to be disabled/enabled * rebrand to locked for api * Update BTCPayServer/Views/UIAccount/Lockout.cshtml Co-authored-by: d11n <mail@dennisreimann.de> * fix docker compose and an uneeded check in api handler * fix * Add enabled user test Co-authored-by: d11n <mail@dennisreimann.de> Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
354 lines
14 KiB
JSON
354 lines
14 KiB
JSON
{
|
|
"paths": {
|
|
"/api/v1/users/me": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Get current user information",
|
|
"description": "View information about the current user",
|
|
"operationId": "Users_GetCurrentUser",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Information about the current user",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ApplicationUserData"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.user.canviewprofile"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Deletes user profile",
|
|
"description": "Deletes user profile and associated user data for user making the request",
|
|
"operationId": "Users_DeleteCurrentUser",
|
|
"responses": {
|
|
"200": {
|
|
"description": "User and associated data deleted successfully"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.user.candeleteuser"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Get all users",
|
|
"description": "Load all users that exist.",
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Users found"
|
|
},
|
|
"401": {
|
|
"description": "Missing authorization for loading the users"
|
|
},
|
|
"403": {
|
|
"description": "Authorized but forbidden to load the users. You have the wrong API permissions."
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.server.canviewusers"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Create user",
|
|
"description": "Create a new user.\n\nThis operation can be called without authentication in any of this cases:\n* There is not any administrator yet on the server,\n* The subscriptions are not disabled in the server's policies.\n\nIf the first administrator is created by this call, subscriptions are automatically disabled.",
|
|
"requestBody": {
|
|
"x-name": "request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"email": {
|
|
"type": "string",
|
|
"description": "The email of the new user",
|
|
"nullable": false
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"description": "The password of the new user"
|
|
},
|
|
"isAdministrator": {
|
|
"type": "boolean",
|
|
"description": "Make this user administrator (only if you have the `unrestricted` permission of a server administrator)",
|
|
"nullable": true,
|
|
"default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": true,
|
|
"x-position": 1
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Information about the new user",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ApplicationUserData"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "A list of errors that occurred when creating the user",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationProblemDetails"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"401": {
|
|
"description": "If you need to authenticate for this endpoint (ie. the server settings policies lock subscriptions and that an admin already exists)"
|
|
},
|
|
"403": {
|
|
"description": "If you are authenticated but forbidden to create a new user (ie. you don't have the `unrestricted` permission on a server administrator or if you are not administrator and registrations are disabled in the server's policies)"
|
|
},
|
|
"429": {
|
|
"description": "DDoS protection if you are creating more than 2 accounts every minutes (non-admin only)"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.server.cancreateuser"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/{idOrEmail}": {
|
|
"get": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Get user by ID or Email",
|
|
"description": "Get 1 user by ID or Email.",
|
|
"parameters": [
|
|
{
|
|
"name": "idOrEmail",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "The ID or email of the user to load",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "User found"
|
|
},
|
|
"401": {
|
|
"description": "Missing authorization for loading the user"
|
|
},
|
|
"403": {
|
|
"description": "Authorized but forbidden to load the user. You have the wrong API permissions."
|
|
},
|
|
"404": {
|
|
"description": "No user found with this ID or email"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.server.canviewusers"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
},
|
|
"delete": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Delete user",
|
|
"description": "Delete a user.\n\nMust be an admin to perform this operation.\n\nAttempting to delete the only admin user will not succeed.\n\nAll data associated with the user will be deleted as well if the operation succeeds.",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "The ID of the user to be deleted",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "User has been successfully deleted"
|
|
},
|
|
"401": {
|
|
"description": "Missing authorization for deleting the user"
|
|
},
|
|
"403": {
|
|
"description": "Authorized but forbidden to delete the user. Can happen if you attempt to delete the only admin user."
|
|
},
|
|
"404": {
|
|
"description": "User with provided ID was not found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.user.candeleteuser"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/{idOrEmail}/lock": {
|
|
"delete": {
|
|
"tags": [
|
|
"Users"
|
|
],
|
|
"summary": "Toggle user",
|
|
"description": "Lock or unlock a user.\n\nMust be an admin to perform this operation.\n\nAttempting to lock the only admin user will not succeed.",
|
|
"parameters": [
|
|
{
|
|
"name": "userId",
|
|
"in": "path",
|
|
"required": true,
|
|
"description": "The ID of the user to be un/locked",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"x-name": "request",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LockUserRequest"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "User has been successfully toggled"
|
|
},
|
|
"401": {
|
|
"description": "Missing authorization for deleting the user"
|
|
},
|
|
"403": {
|
|
"description": "Authorized but forbidden to disable the user. Can happen if you attempt to disable the only admin user."
|
|
},
|
|
"404": {
|
|
"description": "User with provided ID was not found"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"API_Key": [
|
|
"btcpay.user.canmodifyserversettings"
|
|
],
|
|
"Basic": []
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"ApplicationUserData": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "The id of the user",
|
|
"nullable": false
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"description": "The email of the user",
|
|
"nullable": false
|
|
},
|
|
"emailConfirmed": {
|
|
"type": "boolean",
|
|
"description": "True if the email has been confirmed by the user"
|
|
},
|
|
"requiresEmailConfirmation": {
|
|
"type": "boolean",
|
|
"description": "True if the email requires email confirmation to log in"
|
|
},
|
|
"created": {
|
|
"nullable": true,
|
|
"description": "The creation date of the user as a unix timestamp. Null if created before v1.0.5.6",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UnixTimestamp"
|
|
}
|
|
]
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"nullable": false,
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The roles of the user"
|
|
}
|
|
}
|
|
},
|
|
"LockUserRequest": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"locked": {
|
|
"type": "boolean",
|
|
"description": "Whether to lock or unlock the user"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"tags": [
|
|
{
|
|
"name": "Users"
|
|
}
|
|
]
|
|
}
|