mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-08 10:34:10 +00:00
satisfly redocly lint with operationIds
operationIds don't need to be meaningful, but they are used in links, so should be stable
This commit is contained in:
@@ -6,6 +6,7 @@ info:
|
|||||||
<a href="./">Return to JupyterHub documentation</a>.
|
<a href="./">Return to JupyterHub documentation</a>.
|
||||||
license:
|
license:
|
||||||
name: BSD-3-Clause
|
name: BSD-3-Clause
|
||||||
|
identifier: BSD-3-Clause
|
||||||
version: 5.0.0.dev
|
version: 5.0.0.dev
|
||||||
servers:
|
servers:
|
||||||
- url: /hub/api
|
- url: /hub/api
|
||||||
@@ -16,6 +17,7 @@ security:
|
|||||||
paths:
|
paths:
|
||||||
/:
|
/:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-api
|
||||||
summary: Get JupyterHub version
|
summary: Get JupyterHub version
|
||||||
description: |
|
description: |
|
||||||
This endpoint is not authenticated for the purpose of clients and user
|
This endpoint is not authenticated for the purpose of clients and user
|
||||||
@@ -33,6 +35,7 @@ paths:
|
|||||||
description: The version of JupyterHub itself
|
description: The version of JupyterHub itself
|
||||||
/info:
|
/info:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-info
|
||||||
summary: Get detailed info about JupyterHub
|
summary: Get detailed info about JupyterHub
|
||||||
description: |
|
description: |
|
||||||
Detailed JupyterHub information, including Python version,
|
Detailed JupyterHub information, including Python version,
|
||||||
@@ -82,6 +85,7 @@ paths:
|
|||||||
- read:hub
|
- read:hub
|
||||||
/user:
|
/user:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-current-user
|
||||||
summary: Return authenticated user's model
|
summary: Return authenticated user's model
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
@@ -104,6 +108,7 @@ paths:
|
|||||||
- admin:server_state
|
- admin:server_state
|
||||||
/users:
|
/users:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-users
|
||||||
summary: List users
|
summary: List users
|
||||||
parameters:
|
parameters:
|
||||||
- name: state
|
- name: state
|
||||||
@@ -155,6 +160,7 @@ paths:
|
|||||||
- admin:auth_state
|
- admin:auth_state
|
||||||
- admin:server_state
|
- admin:server_state
|
||||||
post:
|
post:
|
||||||
|
operationId: post-users
|
||||||
summary: Create multiple users
|
summary: Create multiple users
|
||||||
requestBody:
|
requestBody:
|
||||||
content:
|
content:
|
||||||
@@ -187,6 +193,7 @@ paths:
|
|||||||
x-codegen-request-body-name: body
|
x-codegen-request-body-name: body
|
||||||
/users/{name}:
|
/users/{name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-user
|
||||||
summary: Get a user by name
|
summary: Get a user by name
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -214,6 +221,7 @@ paths:
|
|||||||
- admin:auth_state
|
- admin:auth_state
|
||||||
- admin:server_state
|
- admin:server_state
|
||||||
post:
|
post:
|
||||||
|
operationId: post-user
|
||||||
summary: Create a single user
|
summary: Create a single user
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -228,6 +236,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- admin:users
|
- admin:users
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-user
|
||||||
summary: Delete a user
|
summary: Delete a user
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -239,6 +248,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- admin:users
|
- admin:users
|
||||||
patch:
|
patch:
|
||||||
|
operationId: patch-user
|
||||||
summary: Modify a user
|
summary: Modify a user
|
||||||
description: Change a user's name or admin status
|
description: Change a user's name or admin status
|
||||||
parameters:
|
parameters:
|
||||||
@@ -276,6 +286,7 @@ paths:
|
|||||||
x-codegen-request-body-name: body
|
x-codegen-request-body-name: body
|
||||||
/users/{name}/activity:
|
/users/{name}/activity:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-user-activity
|
||||||
summary: Notify Hub of activity for a given user
|
summary: Notify Hub of activity for a given user
|
||||||
description:
|
description:
|
||||||
Notify the Hub of activity by the user, e.g. accessing a service
|
Notify the Hub of activity by the user, e.g. accessing a service
|
||||||
@@ -335,6 +346,7 @@ paths:
|
|||||||
x-codegen-request-body-name: body
|
x-codegen-request-body-name: body
|
||||||
/users/{name}/server:
|
/users/{name}/server:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-user-server
|
||||||
summary: Start a user's single-user notebook server
|
summary: Start a user's single-user notebook server
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -365,6 +377,7 @@ paths:
|
|||||||
- servers
|
- servers
|
||||||
x-codegen-request-body-name: options
|
x-codegen-request-body-name: options
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-user-server
|
||||||
summary: Stop a user's server
|
summary: Stop a user's server
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -382,6 +395,7 @@ paths:
|
|||||||
- servers
|
- servers
|
||||||
/users/{name}/servers/{server_name}:
|
/users/{name}/servers/{server_name}:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-user-server-name
|
||||||
summary: Start a user's named server
|
summary: Start a user's named server
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -411,6 +425,7 @@ paths:
|
|||||||
- servers
|
- servers
|
||||||
x-codegen-request-body-name: options
|
x-codegen-request-body-name: options
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-user-server-name
|
||||||
summary: Stop a user's named server
|
summary: Stop a user's named server
|
||||||
description: |
|
description: |
|
||||||
To remove the named server in addition to deleting it,
|
To remove the named server in addition to deleting it,
|
||||||
@@ -453,6 +468,7 @@ paths:
|
|||||||
|
|
||||||
/users/{name}/shared:
|
/users/{name}/shared:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-user-shared
|
||||||
summary: List servers shared with user
|
summary: List servers shared with user
|
||||||
description:
|
description:
|
||||||
Returns list of Shares granting the user access to servers owned
|
Returns list of Shares granting the user access to servers owned
|
||||||
@@ -480,6 +496,7 @@ paths:
|
|||||||
|
|
||||||
/users/{name}/shared/{owner}/{server_name}:
|
/users/{name}/shared/{owner}/{server_name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-user-shared-server
|
||||||
summary: |
|
summary: |
|
||||||
Get user's shared access to server
|
Get user's shared access to server
|
||||||
description: |
|
description: |
|
||||||
@@ -501,6 +518,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:users:shares
|
- read:users:shares
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-user-shared-server
|
||||||
summary: |
|
summary: |
|
||||||
Leave a shared server
|
Leave a shared server
|
||||||
description: |
|
description: |
|
||||||
@@ -523,6 +541,7 @@ paths:
|
|||||||
|
|
||||||
/users/{name}/tokens:
|
/users/{name}/tokens:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-user-tokens
|
||||||
summary: List tokens for the user
|
summary: List tokens for the user
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -545,6 +564,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:tokens
|
- read:tokens
|
||||||
post:
|
post:
|
||||||
|
operationId: post-user-tokens
|
||||||
summary: Create a new token for the user
|
summary: Create a new token for the user
|
||||||
description: |
|
description: |
|
||||||
Creates a new token owned by the user.
|
Creates a new token owned by the user.
|
||||||
@@ -605,6 +625,7 @@ paths:
|
|||||||
x-codegen-request-body-name: token_params
|
x-codegen-request-body-name: token_params
|
||||||
/users/{name}/tokens/{token_id}:
|
/users/{name}/tokens/{token_id}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-user-token
|
||||||
summary: Get one token
|
summary: Get one token
|
||||||
description: Get the details for one token by id
|
description: Get the details for one token by id
|
||||||
parameters:
|
parameters:
|
||||||
@@ -625,6 +646,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:tokens
|
- read:tokens
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-user-token
|
||||||
summary: Delete (revoke) a token by id
|
summary: Delete (revoke) a token by id
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/userName"
|
- $ref: "#/components/parameters/userName"
|
||||||
@@ -642,6 +664,7 @@ paths:
|
|||||||
- tokens
|
- tokens
|
||||||
/groups:
|
/groups:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-groups
|
||||||
summary: List groups
|
summary: List groups
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/paginationOffset"
|
- $ref: "#/components/parameters/paginationOffset"
|
||||||
@@ -662,6 +685,7 @@ paths:
|
|||||||
- read:roles:groups
|
- read:roles:groups
|
||||||
/groups/{name}:
|
/groups/{name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-group
|
||||||
summary: Get a group by name
|
summary: Get a group by name
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/groupName"
|
- $ref: "#/components/parameters/groupName"
|
||||||
@@ -678,6 +702,7 @@ paths:
|
|||||||
- read:groups:name
|
- read:groups:name
|
||||||
- read:roles:groups
|
- read:roles:groups
|
||||||
post:
|
post:
|
||||||
|
operationId: post-group
|
||||||
summary: Create a group
|
summary: Create a group
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/groupName"
|
- $ref: "#/components/parameters/groupName"
|
||||||
@@ -692,6 +717,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- admin:groups
|
- admin:groups
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-group
|
||||||
summary: Delete a group
|
summary: Delete a group
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/groupName"
|
- $ref: "#/components/parameters/groupName"
|
||||||
@@ -705,6 +731,7 @@ paths:
|
|||||||
|
|
||||||
/groups/{name}/shared:
|
/groups/{name}/shared:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-group-shared
|
||||||
summary: List servers shared with group
|
summary: List servers shared with group
|
||||||
description: |
|
description: |
|
||||||
Lists shares granting `group` access to shared servers
|
Lists shares granting `group` access to shared servers
|
||||||
@@ -731,6 +758,7 @@ paths:
|
|||||||
|
|
||||||
/groups/{name}/shared/{owner}/{server_name}:
|
/groups/{name}/shared/{owner}/{server_name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-group-shared-server
|
||||||
summary: Get group's shared access
|
summary: Get group's shared access
|
||||||
description: |
|
description: |
|
||||||
Get the Share representing a single group's access to a single server
|
Get the Share representing a single group's access to a single server
|
||||||
@@ -750,6 +778,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:groups:shares
|
- read:groups:shares
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-group-shared-server
|
||||||
summary: Leave a share (group)
|
summary: Leave a share (group)
|
||||||
description: |
|
description: |
|
||||||
Leave a share by revoking a group's permissions on a single server
|
Leave a share by revoking a group's permissions on a single server
|
||||||
@@ -770,6 +799,7 @@ paths:
|
|||||||
|
|
||||||
/groups/{name}/users:
|
/groups/{name}/users:
|
||||||
post:
|
post:
|
||||||
|
operationId: get-group-users
|
||||||
summary: Add users to a group
|
summary: Add users to a group
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/groupName"
|
- $ref: "#/components/parameters/groupName"
|
||||||
@@ -798,6 +828,7 @@ paths:
|
|||||||
- groups
|
- groups
|
||||||
x-codegen-request-body-name: body
|
x-codegen-request-body-name: body
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-group-users
|
||||||
summary: |
|
summary: |
|
||||||
Remove users from a group
|
Remove users from a group
|
||||||
description: |
|
description: |
|
||||||
@@ -836,6 +867,7 @@ paths:
|
|||||||
|
|
||||||
/groups/{name}/properties:
|
/groups/{name}/properties:
|
||||||
put:
|
put:
|
||||||
|
operationId: put-group-properties
|
||||||
summary: Set group properties
|
summary: Set group properties
|
||||||
description: |
|
description: |
|
||||||
Set properties on a group
|
Set properties on a group
|
||||||
@@ -865,6 +897,7 @@ paths:
|
|||||||
|
|
||||||
/shares/{owner}:
|
/shares/{owner}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-shares-owner
|
||||||
summary: List shares by owner
|
summary: List shares by owner
|
||||||
description: |
|
description: |
|
||||||
List shares granting access to any of owner's servers
|
List shares granting access to any of owner's servers
|
||||||
@@ -893,6 +926,7 @@ paths:
|
|||||||
|
|
||||||
/shares/{owner}/{server_name}:
|
/shares/{owner}/{server_name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-shares-server
|
||||||
summary: List server shares
|
summary: List server shares
|
||||||
description: |
|
description: |
|
||||||
List shares granting access to a single server
|
List shares granting access to a single server
|
||||||
@@ -920,6 +954,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:shares
|
- read:shares
|
||||||
post:
|
post:
|
||||||
|
operationId: post-shares-server
|
||||||
summary: Grant shared access
|
summary: Grant shared access
|
||||||
description: |
|
description: |
|
||||||
Grant shared access to a single server
|
Grant shared access to a single server
|
||||||
@@ -970,6 +1005,7 @@ paths:
|
|||||||
- read:users:name
|
- read:users:name
|
||||||
- read:groups:name
|
- read:groups:name
|
||||||
patch:
|
patch:
|
||||||
|
operationId: patch-shares-server
|
||||||
summary: Revoke shared access
|
summary: Revoke shared access
|
||||||
description: |
|
description: |
|
||||||
Revoke shared access to a single server for a single user or group.
|
Revoke shared access to a single server for a single user or group.
|
||||||
@@ -1022,6 +1058,7 @@ paths:
|
|||||||
- read:users:name
|
- read:users:name
|
||||||
- read:groups:name
|
- read:groups:name
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-shares-server
|
||||||
summary: Revoke all shared access
|
summary: Revoke all shared access
|
||||||
description: |
|
description: |
|
||||||
Revoke all shared access to a given server
|
Revoke all shared access to a given server
|
||||||
@@ -1039,6 +1076,7 @@ paths:
|
|||||||
|
|
||||||
/share-codes/{owner}:
|
/share-codes/{owner}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-share-codes-owner
|
||||||
summary: List share codes by owner
|
summary: List share codes by owner
|
||||||
description: |
|
description: |
|
||||||
List share codes granting access to a user's servers
|
List share codes granting access to a user's servers
|
||||||
@@ -1067,6 +1105,7 @@ paths:
|
|||||||
|
|
||||||
/share-codes/{owner}/{server_name}:
|
/share-codes/{owner}/{server_name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-share-codes-server
|
||||||
summary: List share codes
|
summary: List share codes
|
||||||
description: |
|
description: |
|
||||||
List share codes which can be exchanged for access to a single server
|
List share codes which can be exchanged for access to a single server
|
||||||
@@ -1094,6 +1133,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- read:shares
|
- read:shares
|
||||||
post:
|
post:
|
||||||
|
operationId: post-share-code
|
||||||
summary: Issue share code
|
summary: Issue share code
|
||||||
description: |
|
description: |
|
||||||
Issue a share code, which can be exchanged for shared access to a single server
|
Issue a share code, which can be exchanged for shared access to a single server
|
||||||
@@ -1147,6 +1187,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- shares
|
- shares
|
||||||
delete:
|
delete:
|
||||||
|
operationId: delete-share-code
|
||||||
summary: Revoke share code
|
summary: Revoke share code
|
||||||
description: |
|
description: |
|
||||||
Revoke a share code by id or code.
|
Revoke a share code by id or code.
|
||||||
@@ -1176,6 +1217,7 @@ paths:
|
|||||||
|
|
||||||
/services:
|
/services:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-services
|
||||||
summary: List services
|
summary: List services
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/components/parameters/paginationOffset"
|
- $ref: "#/components/parameters/paginationOffset"
|
||||||
@@ -1196,6 +1238,7 @@ paths:
|
|||||||
- read:roles:services
|
- read:roles:services
|
||||||
/services/{name}:
|
/services/{name}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-service
|
||||||
summary: Get a service by name
|
summary: Get a service by name
|
||||||
parameters:
|
parameters:
|
||||||
- name: name
|
- name: name
|
||||||
@@ -1218,6 +1261,7 @@ paths:
|
|||||||
- read:roles:services
|
- read:roles:services
|
||||||
/proxy:
|
/proxy:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-proxy
|
||||||
summary: Get the proxy's routing table
|
summary: Get the proxy's routing table
|
||||||
description:
|
description:
|
||||||
A convenience alias for getting the routing table directly from
|
A convenience alias for getting the routing table directly from
|
||||||
@@ -1239,6 +1283,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- proxy
|
- proxy
|
||||||
post:
|
post:
|
||||||
|
operationId: post-proxy
|
||||||
summary: Force the Hub to sync with the proxy
|
summary: Force the Hub to sync with the proxy
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
@@ -1248,6 +1293,7 @@ paths:
|
|||||||
- oauth2:
|
- oauth2:
|
||||||
- proxy
|
- proxy
|
||||||
patch:
|
patch:
|
||||||
|
operationId: patch-proxy
|
||||||
summary: Notify the Hub about a new proxy
|
summary: Notify the Hub about a new proxy
|
||||||
description: Notifies the Hub of a new proxy to use.
|
description: Notifies the Hub of a new proxy to use.
|
||||||
requestBody:
|
requestBody:
|
||||||
@@ -1282,6 +1328,7 @@ paths:
|
|||||||
x-codegen-request-body-name: body
|
x-codegen-request-body-name: body
|
||||||
/authorizations/token:
|
/authorizations/token:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-auth-token
|
||||||
summary: Request a new API token
|
summary: Request a new API token
|
||||||
description: |
|
description: |
|
||||||
Request a new API token to use with the JupyterHub REST API.
|
Request a new API token to use with the JupyterHub REST API.
|
||||||
@@ -1320,6 +1367,7 @@ paths:
|
|||||||
x-codegen-request-body-name: credentials
|
x-codegen-request-body-name: credentials
|
||||||
/authorizations/token/{token}:
|
/authorizations/token/{token}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-auth-token
|
||||||
summary: Identify a user or service from an API token
|
summary: Identify a user or service from an API token
|
||||||
parameters:
|
parameters:
|
||||||
- name: token
|
- name: token
|
||||||
@@ -1339,6 +1387,7 @@ paths:
|
|||||||
- (no_scope)
|
- (no_scope)
|
||||||
/authorizations/cookie/{cookie_name}/{cookie_value}:
|
/authorizations/cookie/{cookie_name}/{cookie_value}:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-auth-cookie
|
||||||
summary: Identify a user from a cookie
|
summary: Identify a user from a cookie
|
||||||
description:
|
description:
|
||||||
Used by single-user notebook servers to hand off cookie authentication
|
Used by single-user notebook servers to hand off cookie authentication
|
||||||
@@ -1367,6 +1416,7 @@ paths:
|
|||||||
deprecated: true
|
deprecated: true
|
||||||
/oauth2/authorize:
|
/oauth2/authorize:
|
||||||
get:
|
get:
|
||||||
|
operationId: get-oauth-authorize
|
||||||
summary: OAuth 2.0 authorize endpoint
|
summary: OAuth 2.0 authorize endpoint
|
||||||
description: |
|
description: |
|
||||||
Redirect users to this URL to begin the OAuth process.
|
Redirect users to this URL to begin the OAuth process.
|
||||||
@@ -1404,6 +1454,7 @@ paths:
|
|||||||
content: {}
|
content: {}
|
||||||
/oauth2/token:
|
/oauth2/token:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-oauth-token
|
||||||
summary: Request an OAuth2 token
|
summary: Request an OAuth2 token
|
||||||
description: |
|
description: |
|
||||||
Request an OAuth2 token from an authorization code.
|
Request an OAuth2 token from an authorization code.
|
||||||
@@ -1451,6 +1502,7 @@ paths:
|
|||||||
description: Will always be 'Bearer'
|
description: Will always be 'Bearer'
|
||||||
/shutdown:
|
/shutdown:
|
||||||
post:
|
post:
|
||||||
|
operationId: post-shutdown
|
||||||
summary: Shutdown the Hub
|
summary: Shutdown the Hub
|
||||||
requestBody:
|
requestBody:
|
||||||
content:
|
content:
|
||||||
|
Reference in New Issue
Block a user