authorization: implement /access/info endpoint
Signed-off-by: Luca Schöneberg <luca-schoeneberg@outlook.com>
This commit is contained in:
parent
a8b9fc0017
commit
58fa361c8c
|
@ -2125,6 +2125,25 @@ to any API endpoint. The query string should be added in the form of:
|
||||||
?token={base32_random_token}
|
?token={base32_random_token}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Retrieve information about authorization endpoints
|
||||||
|
HTTP Request:
|
||||||
|
```http
|
||||||
|
GET /access/info
|
||||||
|
```
|
||||||
|
JSON-RPC request: Not Available
|
||||||
|
|
||||||
|
Returns: An object containing information about authorization endpoints, such as
|
||||||
|
default_source and available_sources.
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"default_source": "moonraker",
|
||||||
|
"available_sources": [
|
||||||
|
"moonraker",
|
||||||
|
"ldap"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
#### Get the Current API Key
|
#### Get the Current API Key
|
||||||
HTTP request:
|
HTTP request:
|
||||||
```http
|
```http
|
||||||
|
|
|
@ -220,6 +220,7 @@ class Authorization:
|
||||||
self.permitted_paths.add("/server/redirect")
|
self.permitted_paths.add("/server/redirect")
|
||||||
self.permitted_paths.add("/access/login")
|
self.permitted_paths.add("/access/login")
|
||||||
self.permitted_paths.add("/access/refresh_jwt")
|
self.permitted_paths.add("/access/refresh_jwt")
|
||||||
|
self.permitted_paths.add("/access/info")
|
||||||
self.server.register_endpoint(
|
self.server.register_endpoint(
|
||||||
"/access/login", ['POST'], self._handle_login,
|
"/access/login", ['POST'], self._handle_login,
|
||||||
transports=['http'])
|
transports=['http'])
|
||||||
|
@ -244,6 +245,9 @@ class Authorization:
|
||||||
self.server.register_endpoint(
|
self.server.register_endpoint(
|
||||||
"/access/oneshot_token", ['GET'],
|
"/access/oneshot_token", ['GET'],
|
||||||
self._handle_oneshot_request, transports=['http'])
|
self._handle_oneshot_request, transports=['http'])
|
||||||
|
self.server.register_endpoint(
|
||||||
|
"/access/info", ['GET'],
|
||||||
|
self._handle_default_source_request, transports=['http'])
|
||||||
self.server.register_notification("authorization:user_created")
|
self.server.register_notification("authorization:user_created")
|
||||||
self.server.register_notification("authorization:user_deleted")
|
self.server.register_notification("authorization:user_deleted")
|
||||||
|
|
||||||
|
@ -287,6 +291,17 @@ class Authorization:
|
||||||
"action": "user_logged_out"
|
"action": "user_logged_out"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async def _handle_default_source_request(self,
|
||||||
|
web_request: WebRequest
|
||||||
|
) -> Dict[str, str | List[str]]:
|
||||||
|
sources = ["moonraker"]
|
||||||
|
if self.ldap is not None:
|
||||||
|
sources.append("ldap")
|
||||||
|
return {
|
||||||
|
"default_source": self.default_source,
|
||||||
|
"available_sources": sources
|
||||||
|
}
|
||||||
|
|
||||||
async def _handle_refresh_jwt(self,
|
async def _handle_refresh_jwt(self,
|
||||||
web_request: WebRequest
|
web_request: WebRequest
|
||||||
) -> Dict[str, str]:
|
) -> Dict[str, str]:
|
||||||
|
|
Loading…
Reference in New Issue