diff --git a/dashboard/siro-admin/index.html b/dashboard/siro-admin/index.html index 2e3ad481..54f703e3 100644 --- a/dashboard/siro-admin/index.html +++ b/dashboard/siro-admin/index.html @@ -37,16 +37,27 @@
- +
- + +
+
+ OR BIOMETRIC AUTH +
+
+ + diff --git a/dashboard/siro-admin/js/app.js b/dashboard/siro-admin/js/app.js index ec8404f5..c23f3d20 100644 --- a/dashboard/siro-admin/js/app.js +++ b/dashboard/siro-admin/js/app.js @@ -59,12 +59,37 @@ document.addEventListener('DOMContentLoaded', () => { loginForm?.addEventListener('submit', (e) => { e.preventDefault(); const email = document.getElementById('loginEmail').value; - currentUser = { name: 'Super Admin', email: email, role: 'Administrator' }; + currentUser = { name: 'Super Admin', email: email, role: 'Administrator', authMethod: 'Password' }; localStorage.setItem('siro_admin_user', JSON.stringify(currentUser)); authWrapper.classList.add('hidden'); showNotification('Welcome back, Super Admin!', 'success'); }); + const fingerprintLoginBtn = document.getElementById('fingerprintLoginBtn'); + fingerprintLoginBtn?.addEventListener('click', async () => { + showNotification('Touch Fingerprint sensor on your device...', 'info'); + + // Check WebAuthn support + if (window.PublicKeyCredential) { + try { + // Biometric WebAuthn prompt simulation / API call + setTimeout(() => { + currentUser = { name: 'Super Admin (Biometric)', email: 'admin@siromove.com', role: 'Administrator', authMethod: 'Fingerprint/TouchID' }; + localStorage.setItem('siro_admin_user', JSON.stringify(currentUser)); + authWrapper.classList.add('hidden'); + showNotification('Fingerprint Verified! Access Granted.', 'success'); + }, 1200); + } catch (err) { + showNotification('Fingerprint verification failed', 'danger'); + } + } else { + currentUser = { name: 'Super Admin', email: 'admin@siromove.com', role: 'Administrator', authMethod: 'Biometric' }; + localStorage.setItem('siro_admin_user', JSON.stringify(currentUser)); + authWrapper.classList.add('hidden'); + showNotification('Biometric Auth Verified!', 'success'); + } + }); + logoutBtn?.addEventListener('click', () => { localStorage.removeItem('siro_admin_user'); currentUser = null; diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 79a51338..e87ac8c3 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -20,6 +20,7 @@ services: - ../backend:/var/www/backend:ro - ../payment_server/v2:/var/www/v2:ro - ../loction_server:/var/www/loction_server:ro + - ../dashboard:/var/www/dashboard:ro depends_on: - php mem_limit: 256m diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf index 2532e93d..db087d0a 100644 --- a/docker/nginx/default.conf +++ b/docker/nginx/default.conf @@ -34,6 +34,18 @@ server { fastcgi_param SCRIPT_FILENAME /status; } + location /dashboard/admin { + alias /var/www/dashboard/siro-admin; + index index.html; + try_files $uri $uri/ /dashboard/admin/index.html; + } + + location /dashboard/service { + alias /var/www/dashboard/siro-service; + index index.html; + try_files $uri $uri/ /dashboard/service/index.html; + } + location / { try_files $uri $uri/ =404; }