aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/moon_manager/api/auth.py
diff options
context:
space:
mode:
authorThomas Duval <thomas.duval@orange.com>2020-06-03 10:06:52 +0200
committerThomas Duval <thomas.duval@orange.com>2020-06-03 10:06:52 +0200
commit7bb53c64da2dcf88894bfd31503accdd81498f3d (patch)
tree4310e12366818af27947b5e2c80cb162da93a4b5 /moon_manager/moon_manager/api/auth.py
parentcbea4e360e9bfaa9698cf7c61c83c96a1ba89b8c (diff)
Update to new version 5.4HEADstable/jermamaster
Signed-off-by: Thomas Duval <thomas.duval@orange.com> Change-Id: Idcd868133d75928a1ffd74d749ce98503e0555ea
Diffstat (limited to 'moon_manager/moon_manager/api/auth.py')
-rw-r--r--moon_manager/moon_manager/api/auth.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/moon_manager/moon_manager/api/auth.py b/moon_manager/moon_manager/api/auth.py
new file mode 100644
index 00000000..a60fd727
--- /dev/null
+++ b/moon_manager/moon_manager/api/auth.py
@@ -0,0 +1,42 @@
+# Software Name: MOON
+
+# Version: 5.4
+
+# SPDX-FileCopyrightText: Copyright (c) 2018-2020 Orange and its contributors
+# SPDX-License-Identifier: Apache-2.0
+
+# This software is distributed under the 'Apache License 2.0',
+# the text of which is available at 'http://www.apache.org/licenses/LICENSE-2.0.txt'
+# or see the "LICENSE" file for more details.
+
+
+"""Auth API"""
+from falcon import HTTP_204, HTTP_400
+import hug
+import logging
+from moon_utilities.auth_functions import basic_authentication, api_key_authentication
+from moon_utilities.auth_functions import get_api_key_for_user, del_api_key_for_user
+
+logger = logging.getLogger("moon.manager.api.status")
+
+
+@hug.get("/auth/", requires=basic_authentication)
+def get_api_key(authed_user: hug.directives.user = None):
+ """
+ Get API key
+ :return: API key
+ """
+ return get_api_key_for_user(authed_user)
+
+
+@hug.delete("/auth/", requires=api_key_authentication)
+def del_api_key(response, authed_user: hug.directives.user = None):
+ """
+ Delete API key
+ :return: None
+ """
+ if del_api_key_for_user(authed_user):
+ response.status = HTTP_204
+ else:
+ response.status = HTTP_400
+ return