mirror of
https://github.com/iFargle/headscale-webui.git
synced 2026-03-18 21:05:30 +01:00
test
This commit is contained in:
102
server.py
102
server.py
@@ -91,23 +91,21 @@ elif AUTH_TYPE == "basic":
|
||||
# Set Authentication type - Dynamically load function decorators
|
||||
# https://wiki.python.org/moin/PythonDecoratorLibrary#Enable.2FDisable_Decorators
|
||||
########################################################################################
|
||||
def unchanged(func):
|
||||
"This decorator doesn't add any behavior"
|
||||
return func
|
||||
def disabled(func):
|
||||
"This decorator disables the provided function, and does nothing"
|
||||
def empty_func(*args,**kargs):
|
||||
pass
|
||||
return empty_func
|
||||
enabled = unchanged
|
||||
def feature_flag(flag):
|
||||
def decorator_feature_flag(func):
|
||||
@wraps(func)
|
||||
def wrapper_decorator_feature_flag(*args, **kwargs):
|
||||
if flag is not "oidc":
|
||||
func(*args, **kwargs)
|
||||
oidc.require_login(func)
|
||||
return wrapper_decorator_feature_flag
|
||||
return decorator_feature_flag
|
||||
########################################################################################
|
||||
# / pages - User-facing pages
|
||||
########################################################################################
|
||||
@app.route('/')
|
||||
@app.route('/overview')
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def overview_page():
|
||||
# Some basic sanity checks:
|
||||
pass_checks = str(helper.load_checks())
|
||||
@@ -120,9 +118,7 @@ def overview_page():
|
||||
)
|
||||
|
||||
@app.route('/machines', methods=('GET', 'POST'))
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def machines_page():
|
||||
# Some basic sanity checks:
|
||||
pass_checks = str(helper.load_checks())
|
||||
@@ -137,9 +133,7 @@ def machines_page():
|
||||
)
|
||||
|
||||
@app.route('/users', methods=('GET', 'POST'))
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def users_page():
|
||||
# Some basic sanity checks:
|
||||
pass_checks = str(helper.load_checks())
|
||||
@@ -154,9 +148,7 @@ def users_page():
|
||||
)
|
||||
|
||||
@app.route('/settings', methods=('GET', 'POST'))
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def settings_page():
|
||||
# Some basic sanity checks:
|
||||
pass_checks = str(helper.load_checks())
|
||||
@@ -174,9 +166,7 @@ def settings_page():
|
||||
)
|
||||
|
||||
@app.route('/error')
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def error_page():
|
||||
if helper.access_checks() == "Pass":
|
||||
return redirect(url_for('overview_page'))
|
||||
@@ -194,9 +184,7 @@ def error_page():
|
||||
########################################################################################
|
||||
|
||||
@app.route('/api/test_key', methods=('GET', 'POST'))
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def test_key_page():
|
||||
api_key = headscale.get_api_key()
|
||||
url = headscale.get_url()
|
||||
@@ -233,9 +221,7 @@ def test_key_page():
|
||||
return message
|
||||
|
||||
@app.route('/api/save_key', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def save_key_page():
|
||||
json_response = request.get_json()
|
||||
api_key = json_response['api_key']
|
||||
@@ -260,9 +246,7 @@ def save_key_page():
|
||||
# Machine API Endpoints
|
||||
########################################################################################
|
||||
@app.route('/api/update_route', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def update_route_page():
|
||||
json_response = request.get_json()
|
||||
route_id = json_response['route_id']
|
||||
@@ -273,9 +257,7 @@ def update_route_page():
|
||||
return headscale.update_route(url, api_key, route_id, current_state)
|
||||
|
||||
@app.route('/api/machine_information', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def machine_information_page():
|
||||
json_response = request.get_json()
|
||||
machine_id = json_response['id']
|
||||
@@ -285,9 +267,7 @@ def machine_information_page():
|
||||
return headscale.get_machine_info(url, api_key, machine_id)
|
||||
|
||||
@app.route('/api/delete_machine', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def delete_machine_page():
|
||||
json_response = request.get_json()
|
||||
machine_id = json_response['id']
|
||||
@@ -297,9 +277,7 @@ def delete_machine_page():
|
||||
return headscale.delete_machine(url, api_key, machine_id)
|
||||
|
||||
@app.route('/api/rename_machine', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def rename_machine_page():
|
||||
json_response = request.get_json()
|
||||
machine_id = json_response['id']
|
||||
@@ -310,9 +288,7 @@ def rename_machine_page():
|
||||
return headscale.rename_machine(url, api_key, machine_id, new_name)
|
||||
|
||||
@app.route('/api/move_user', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def move_user_page():
|
||||
json_response = request.get_json()
|
||||
machine_id = json_response['id']
|
||||
@@ -323,9 +299,7 @@ def move_user_page():
|
||||
return headscale.move_user(url, api_key, machine_id, new_user)
|
||||
|
||||
@app.route('/api/set_machine_tags', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def set_machine_tags():
|
||||
json_response = request.get_json()
|
||||
machine_id = json_response['id']
|
||||
@@ -336,9 +310,7 @@ def set_machine_tags():
|
||||
return headscale.set_machine_tags(url, api_key, machine_id, machine_tags)
|
||||
|
||||
@app.route('/api/register_machine', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def register_machine():
|
||||
json_response = request.get_json()
|
||||
machine_key = json_response['key']
|
||||
@@ -352,9 +324,7 @@ def register_machine():
|
||||
# User API Endpoints
|
||||
########################################################################################
|
||||
@app.route('/api/rename_user', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def rename_user_page():
|
||||
json_response = request.get_json()
|
||||
old_name = json_response['old_name']
|
||||
@@ -365,9 +335,7 @@ def rename_user_page():
|
||||
return headscale.rename_user(url, api_key, old_name, new_name)
|
||||
|
||||
@app.route('/api/add_user', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def add_user():
|
||||
json_response = json.dumps(request.get_json())
|
||||
url = headscale.get_url()
|
||||
@@ -376,9 +344,7 @@ def add_user():
|
||||
return headscale.add_user(url, api_key, json_response)
|
||||
|
||||
@app.route('/api/delete_user', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def delete_user():
|
||||
json_response = request.get_json()
|
||||
user_name = json_response['name']
|
||||
@@ -388,9 +354,7 @@ def delete_user():
|
||||
return headscale.delete_user(url, api_key, user_name)
|
||||
|
||||
@app.route('/api/get_users', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def get_users_page():
|
||||
url = headscale.get_url()
|
||||
api_key = headscale.get_api_key()
|
||||
@@ -401,9 +365,7 @@ def get_users_page():
|
||||
# Pre-Auth Key API Endpoints
|
||||
########################################################################################
|
||||
@app.route('/api/add_preauth_key', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def add_preauth_key():
|
||||
json_response = json.dumps(request.get_json())
|
||||
url = headscale.get_url()
|
||||
@@ -412,9 +374,7 @@ def add_preauth_key():
|
||||
return headscale.add_preauth_key(url, api_key, json_response)
|
||||
|
||||
@app.route('/api/expire_preauth_key', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def expire_preauth_key():
|
||||
json_response = json.dumps(request.get_json())
|
||||
url = headscale.get_url()
|
||||
@@ -423,9 +383,7 @@ def expire_preauth_key():
|
||||
return headscale.expire_preauth_key(url, api_key, json_response)
|
||||
|
||||
@app.route('/api/build_preauthkey_table', methods=['POST'])
|
||||
oidc.require_login = enabled if AUTH_TYPE == "oidc" else disabled
|
||||
@oidc.require_login
|
||||
@auth_method
|
||||
@auth_type(AUTH_TYPE)
|
||||
def build_preauth_key_table():
|
||||
json_response = request.get_json()
|
||||
user_name = json_response['name']
|
||||
|
||||
Reference in New Issue
Block a user