diff --git a/src/client.py b/src/client.py
index b31f19b..32f6f73 100644
--- a/src/client.py
+++ b/src/client.py
@@ -46,10 +46,18 @@ def createClientBlueprint(wireguardConfigurations: dict[WireguardConfiguration],
@client.get(f'{prefix}/api/signin/oidc/providers')
def ClientAPI_SignIn_OIDC_GetProviders():
+ _, oidc = dashboardConfig.GetConfig("OIDC", "client_enable")
+ if not oidc:
+ return ResponseObject(status=False, message="OIDC is disabled")
+
return ResponseObject(data=dashboardClients.OIDC.GetProviders())
@client.post(f'{prefix}/api/signin/oidc')
def ClientAPI_SignIn_OIDC():
+ _, oidc = dashboardConfig.GetConfig("OIDC", "client_enable")
+ if not oidc:
+ return ResponseObject(status=False, message="OIDC is disabled")
+
data = request.json
status, oidcData = dashboardClients.SignIn_OIDC(**data)
if not status:
diff --git a/src/dashboard.py b/src/dashboard.py
index 9ead71e..0049328 100644
--- a/src/dashboard.py
+++ b/src/dashboard.py
@@ -1213,6 +1213,38 @@ def API_SystemStatus():
def API_ProtocolsEnabled():
return ResponseObject(data=ProtocolsEnabled())
+'''
+OIDC Controller
+'''
+@app.get(f'{APP_PREFIX}/api/oidc/toggle')
+def API_OIDC_Toggle():
+ data = request.args
+ if not data.get('mode'):
+ return ResponseObject(False, "Please provide mode")
+
+ mode = data.get('mode')
+ if mode == 'Client':
+ DashboardConfig.SetConfig("OIDC", "client_enable",
+ not DashboardConfig.GetConfig("OIDC", "client_enable")[1])
+ elif mode == 'Admin':
+ DashboardConfig.SetConfig("OIDC", "admin_enable",
+ not DashboardConfig.GetConfig("OIDC", "admin_enable")[1])
+ else:
+ return ResponseObject(False, "Mode does not exist")
+ return ResponseObject()
+
+@app.get(f'{APP_PREFIX}/api/oidc/status')
+def API_OIDC_Status():
+ data = request.args
+ if not data.get('mode'):
+ return ResponseObject(False, "Please provide mode")
+ mode = data.get('mode')
+ if mode == 'Client':
+ return ResponseObject(data=DashboardConfig.GetConfig("OIDC", "client_enable")[1])
+ elif mode == 'Admin':
+ return ResponseObject(data=DashboardConfig.GetConfig("OIDC", "admin_enable")[1])
+ return ResponseObject(False, "Mode does not exist")
+
'''
Client Controller
'''
diff --git a/src/static/app/src/components/clientComponents/clientSettingComponents/oidcSettings.vue b/src/static/app/src/components/clientComponents/clientSettingComponents/oidcSettings.vue
new file mode 100644
index 0000000..bae7250
--- /dev/null
+++ b/src/static/app/src/components/clientComponents/clientSettingComponents/oidcSettings.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+ wg-dashboard-oidc-providers.json
directly. If you updated the file, click the update button below to reload the configuration.
+