From 136778aa0a108df1f3b4d4e688b730ee267e0330 Mon Sep 17 00:00:00 2001 From: oxpoe Date: Fri, 9 Oct 2026 07:04:57 +0700 Subject: [PATCH] =?UTF-8?q?i18n=20(Phase=20C=20batch=202):=20radius-settin?= =?UTF-8?q?gs=20=E2=80=94=20form=20&=20tab=20(cards,=20isolir,=20ip-pool,?= =?UTF-8?q?=20autogen,=20script)=20ID/EN=20+=20fix=20domain=20sky.id->open?= =?UTF-8?q?isp.id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locales/en.json | 75 ++++++++++++++++ locales/id.json | 75 ++++++++++++++++ views/admin/radius-settings.ejs | 152 ++++++++++++++++---------------- 3 files changed, 226 insertions(+), 76 deletions(-) diff --git a/locales/en.json b/locales/en.json index e06a118..eecf359 100644 --- a/locales/en.json +++ b/locales/en.json @@ -1578,6 +1578,81 @@ "select_vendor": "Select Vendor", "hint_rescan": "Click \"Rescan\" to find unconfigured ONUs", "hint_reload": "Click \"Reload / Scan\" to monitor configured ONU status via SNMP" + }, + "rds": { + "card_status": "RADIUS Server Status", + "card_online": "RADIUS Users Online", + "card_online_sub": "Currently Connected Active Sessions", + "card_nas_sub": "Registered NAS Routers on Server", + "card_traffic": "RADIUS Traffic Today", + "card_log_today": "Accounting Logs Today", + "tab_sessions": "Active RADIUS Sessions", + "tab_settings": "RADIUS Settings", + "tab_nas": "NAS Router List", + "tab_log": "Accounting Log", + "svc_title": "RADIUS Server Service", + "svc_status": "RADIUS Service Status", + "opt_active_bg": "Active (Running Background UDP Service)", + "opt_inactive": "Inactive (Disabled)", + "desc_listen": "Listens for authentication & accounting requests from MikroTik NAS routers.", + "secret": "Global Shared Secret RADIUS", + "secret_desc": "Default secret used when the NAS IP is not specifically registered.", + "ports_title": "UDP Network Ports", + "port_auth": "Port Auth (UDP)", + "port_acct": "Port Acct (UDP)", + "limit_title": "Speed & Active Session Limits", + "simuse": "Limit Concurrent Active Sessions (Simultaneous-Use)", + "opt_simuse_on": "Active - Limit 1 Account to 1 Online Session (Reject Multiple Logins)", + "opt_simuse_off": "Inactive - Allow Multi-Login", + "simuse_desc": "Prevents one account from being used on many devices at once.", + "rate_default": "Default Rate Limit (Speed Fallback)", + "ph_rate": "Example: 5M/10M", + "rate_desc": "Used when the user/customer is not bound to a specific Internet Package. (Format: Upload/Download).", + "isolir_title": "RADIUS Isolir & Suspended Policy", + "isolir_action": "Isolated Customer Action", + "opt_isolir_pool": "Access-Accept with Isolir Dynamic IP Pool (Recommended)", + "opt_isolir_reject": "Access-Reject (Connection Fully Rejected)", + "isolir_pool_alloc": "Isolir IP Pool Allocation by RADIUS Server", + "opt_isolir_pool_on": "Active - RADIUS allocates a dedicated Isolir IP automatically", + "opt_isolir_pool_off": "Inactive - Only send Mikrotik-Group / Framed-Pool", + "isolir_pool_desc": "Isolated customers get a dedicated IP from the RADIUS isolir subnet without needing a user/pool on MikroTik.", + "isolir_start": "Isolir IP Pool Range (Start)", + "isolir_end": "Isolir IP Pool Range (End)", + "isolir_rate": "Isolated Customer Speed Limit (Rate-Limit)", + "ph_isolir_rate": "Example: 512k/512k or 1M/1M", + "isolir_rate_desc": "Format: Upload/Download (e.g.: 512k/512k, 1M/1M, 256k/512k). Sent directly to MikroTik when a customer is isolated.", + "isolir_pool_name": "RADIUS Isolir Pool / Group Name (Attribute)", + "isolir_pool_name_desc": "Extra Mikrotik-Group / Framed-Pool attribute for isolated customers.", + "ipool_title": "Automatic RADIUS IP Pool Allocation", + "ipool_alloc": "Dynamic IP Allocation by RADIUS Server", + "opt_ipool_on": "Active - RADIUS hands out IPs automatically from the IP Pool range (Recommended)", + "opt_ipool_off": "Inactive - Use Dynamic Pool from MikroTik (Framed-Pool)", + "ipool_desc": "If enabled, RADIUS automatically assigns dynamic IPs to customers without static IPs, independent of the local MikroTik pool.", + "ipool_start": "Normal IP Pool Range (Start)", + "ipool_end": "Normal IP Pool Range (End)", + "framed_pool": "Default Framed Pool Name (Fallback)", + "autogen_title": "Auto-Generate PPPoE Account (New Customer)", + "autogen_hint": "Used when an admin approves a registrant or clicks Generate PPPoE Account. Applies to both MikroTik and RADIUS modes.", + "autogen_label": "Automatically create PPPoE account", + "opt_yes": "Yes (automatic)", + "opt_no_manual": "No (manual)", + "pattern": "Username Pattern", + "opt_cust_code": "Customer ID (ISP-xxxxx)", + "default_pass": "Default Password", + "profile_title": "MikroTik Profile Mode (RADIUS)", + "profile_hint": "If Yes: RADIUS only authenticates & sends Mikrotik-Group (package name) — rate-limit & IP are taken from the PPP profile on MikroTik (RADIUS sends no Rate-Limit or IP attributes). Make sure the MikroTik profile name = package name.", + "profile_use": "Use Profile & IP from MikroTik", + "opt_profile_off": "No (RADIUS sets rate-limit & IP)", + "opt_profile_on": "Yes (take from MikroTik PPP profile)", + "script_title": "Automatic MikroTik Setup Script (RADIUS & Isolir)", + "billing_ip": "Billing Server IP:", + "copy_script": "Copy MikroTik Script", + "ufw_title": "1. Linux Server Firewall Command (UFW)", + "ufw_desc": "Run this command in the Linux server terminal (VPS / Production) so the router can reach the server:", + "mt_title": "2. RADIUS & Isolir Integration Script on MikroTik (RouterOS Terminal)", + "mt_desc": "Copy and paste the entire script below into the MikroTik Terminal (server IP is auto-filled from the field above):", + "save": "Save RADIUS Configuration", + "username_hint": "Username = pattern + @ + domain. Example: budi_santoso@openisp.id" } }, "tech": { diff --git a/locales/id.json b/locales/id.json index 8b7dcef..4a5992d 100644 --- a/locales/id.json +++ b/locales/id.json @@ -1579,6 +1579,81 @@ "select_vendor": "Pilih Vendor", "hint_rescan": "Klik \"Scan Ulang\" untuk mencari ONU yang belum terkonfigurasi", "hint_reload": "Klik \"Muat Ulang / Scan\" untuk memantau status ONU terkonfigurasi via SNMP" + }, + "rds": { + "card_status": "Status RADIUS Server", + "card_online": "User RADIUS Online", + "card_online_sub": "Sesi Aktif Terhubung Saat Ini", + "card_nas_sub": "Router NAS Terdaftar di Server", + "card_traffic": "Trafik RADIUS Hari Ini", + "card_log_today": "Log Accounting Hari Ini", + "tab_sessions": "Sesi Active RADIUS", + "tab_settings": "Pengaturan RADIUS", + "tab_nas": "Daftar NAS Router", + "tab_log": "Log Accounting", + "svc_title": "Layanan RADIUS Server", + "svc_status": "Status Service RADIUS", + "opt_active_bg": "Aktif (Running Background UDP Service)", + "opt_inactive": "Non-Aktif (Disabled)", + "desc_listen": "Mendengarkan request autentikasi & accounting dari Router NAS MikroTik.", + "secret": "Global Shared Secret RADIUS", + "secret_desc": "Secret default yang digunakan jika IP NAS tidak didaftarkan secara khusus.", + "ports_title": "Port Jaringan UDP", + "port_auth": "Port Auth (UDP)", + "port_acct": "Port Acct (UDP)", + "limit_title": "Limitasi Kecepatan & Sesi Aktif", + "simuse": "Pembatasan Sesi Aktif Ganda (Simultaneous-Use)", + "opt_simuse_on": "Aktif - Batasi 1 Akun 1 Sesi Online (Rejek Login Ganda)", + "opt_simuse_off": "Non-Aktif - Bebas Multi-Login", + "simuse_desc": "Mencegah 1 akun dipakai secara bersamaan di banyak perangkat.", + "rate_default": "Default Rate Limit (Fallback Kecepatan)", + "ph_rate": "Contoh: 5M/10M", + "rate_desc": "Digunakan jika pengguna/pelanggan tidak terikat pada Paket Internet khusus. (Format: Upload/Download).", + "isolir_title": "Isolir & Suspended Policy RADIUS", + "isolir_action": "Aksi Pelanggan Terisolir", + "opt_isolir_pool": "Access-Accept dengan Dynamic IP Pool Isolir (Rekomendasi)", + "opt_isolir_reject": "Access-Reject (Koneksi Ditolak Total)", + "isolir_pool_alloc": "Alokasi IP Pool Isolir oleh RADIUS Server", + "opt_isolir_pool_on": "Aktif - RADIUS Alokasikan IP Isolir Khusus Secara Otomatis", + "opt_isolir_pool_off": "Non-Aktif - Hanya Kirim Mikrotik-Group / Framed-Pool", + "isolir_pool_desc": "Pelanggan terisolir akan mendapatkan IP khusus dari subnet isolir RADIUS tanpa perlu user/pool di MikroTik.", + "isolir_start": "Rentang IP Pool Isolir (Awal)", + "isolir_end": "Rentang IP Pool Isolir (Akhir)", + "isolir_rate": "Kecepatan Limit Pelanggan Terisolir (Rate-Limit)", + "ph_isolir_rate": "Contoh: 512k/512k atau 1M/1M", + "isolir_rate_desc": "Format: Upload/Download (misal: 512k/512k, 1M/1M, 256k/512k). Dikirimkan langsung ke MikroTik saat pelanggan terisolir.", + "isolir_pool_name": "Nama Pool / Group Isolir RADIUS (Attribute)", + "isolir_pool_name_desc": "Atribut Mikrotik-Group / Framed-Pool tambahan untuk pelanggan terisolir.", + "ipool_title": "Pembagian IP Pool RADIUS Otomatis", + "ipool_alloc": "Alokasi IP Dinamis oleh RADIUS Server", + "opt_ipool_on": "Aktif - RADIUS Bagikan IP Otomatis dari Rentang IP Pool (Rekomendasi)", + "opt_ipool_off": "Non-Aktif - Gunakan Dynamic Pool dari MikroTik (Framed-Pool)", + "ipool_desc": "Jika aktif, RADIUS akan membagikan IP dinamis otomatis ke pelanggan tanpa IP statis sehingga tidak tergantung pada pool lokal MikroTik.", + "ipool_start": "Rentang IP Pool Normal (Awal)", + "ipool_end": "Rentang IP Pool Normal (Akhir)", + "framed_pool": "Nama Framed Pool Default (Fallback)", + "autogen_title": "Auto-Generate Akun PPPoE (Pelanggan Baru)", + "autogen_hint": "Dipakai saat admin menyetujui pendaftar atau menekan Generate Akun PPPoE. Berlaku untuk mode MikroTik maupun RADIUS.", + "autogen_label": "Otomatis buat akun PPPoE", + "opt_yes": "Ya (otomatis)", + "opt_no_manual": "Tidak (isi manual)", + "pattern": "Pola Username", + "opt_cust_code": "ID Pelanggan (ISP-xxxxx)", + "default_pass": "Password Default", + "profile_title": "Mode Profil MikroTik (RADIUS)", + "profile_hint": "Jika Ya: RADIUS hanya mengautentikasi & mengirim Mikrotik-Group (nama paket) — rate-limit & IP diambil dari profil PPP di MikroTik (RADIUS tidak mengirim atribut Rate-Limit maupun IP). Pastikan nama profil di MikroTik = nama paket.", + "profile_use": "Gunakan Profil & IP dari MikroTik", + "opt_profile_off": "Tidak (RADIUS atur rate-limit & IP)", + "opt_profile_on": "Ya (ambil dari profil PPP MikroTik)", + "script_title": "Script Setup Otomatis MikroTik (RADIUS & Isolir)", + "billing_ip": "IP Server Billing:", + "copy_script": "Salin Script MikroTik", + "ufw_title": "1. Perintah Firewall Linux Server (UFW)", + "ufw_desc": "Jalankan perintah ini di terminal server Linux (VPS / Server Produksi) agar router dapat menghubungi server:", + "mt_title": "2. Script Integrasi RADIUS & Isolir di MikroTik (RouterOS Terminal)", + "mt_desc": "Copy dan pastekan seluruh script di bawah ini ke Terminal MikroTik (IP server otomatis terisi dari IP di atas):", + "save": "Simpan Konfigurasi RADIUS", + "username_hint": "Username = pola + @ + domain. Contoh: budi_santoso@openisp.id" } }, "tech": { diff --git a/views/admin/radius-settings.ejs b/views/admin/radius-settings.ejs index 41415cb..7b4a4ee 100644 --- a/views/admin/radius-settings.ejs +++ b/views/admin/radius-settings.ejs @@ -110,7 +110,7 @@
- Status RADIUS Server + <%= t('admin.rds.card_status','Status RADIUS Server') %>
@@ -173,25 +173,25 @@
-
Layanan RADIUS Server
+
<%= t('admin.rds.svc_title','Layanan RADIUS Server') %>
- + - Mendengarkan request autentikasi & accounting dari Router NAS MikroTik. + <%= t('admin.rds.desc_listen','Mendengarkan request autentikasi & accounting dari Router NAS MikroTik.') %>
- + - Secret default yang digunakan jika IP NAS tidak didaftarkan secara khusus. + <%= t('admin.rds.secret_desc','Secret default yang digunakan jika IP NAS tidak didaftarkan secara khusus.') %>
@@ -200,18 +200,18 @@
-
Port Jaringan UDP
+
<%= t('admin.rds.ports_title','Port Jaringan UDP') %>
- + Default: 1812
- + Default: 1813
@@ -222,25 +222,25 @@
-
Limitasi Kecepatan & Sesi Aktif
+
<%= t('admin.rds.limit_title','Limitasi Kecepatan & Sesi Aktif') %>
- + - Mencegah 1 akun dipakai secara bersamaan di banyak perangkat. + <%= t('admin.rds.simuse_desc','Mencegah 1 akun dipakai secara bersamaan di banyak perangkat.') %>
- - + + - Digunakan jika pengguna/pelanggan tidak terikat pada Paket Internet khusus. (Format: Upload/Download). + <%- t('admin.rds.rate_desc','Digunakan jika pengguna/pelanggan tidak terikat pada Paket Internet khusus. (Format: Upload/Download).') %>
@@ -249,47 +249,47 @@
-
Isolir & Suspended Policy RADIUS
+
<%= t('admin.rds.isolir_title','Isolir & Suspended Policy RADIUS') %>
- +
- + - Pelanggan terisolir akan mendapatkan IP khusus dari subnet isolir RADIUS tanpa perlu user/pool di MikroTik. + <%= t('admin.rds.isolir_pool_desc','Pelanggan terisolir akan mendapatkan IP khusus dari subnet isolir RADIUS tanpa perlu user/pool di MikroTik.') %>
- +
- +
- - - Format: Upload/Download (misal: 512k/512k, 1M/1M, 256k/512k). Dikirimkan langsung ke MikroTik saat pelanggan terisolir. + + + <%- t('admin.rds.isolir_rate_desc','Format: Upload/Download (misal: 512k/512k, 1M/1M, 256k/512k). Dikirimkan langsung ke MikroTik saat pelanggan terisolir.') %>
- + - Atribut Mikrotik-Group / Framed-Pool tambahan untuk pelanggan terisolir. + <%= t('admin.rds.isolir_pool_name_desc','Atribut Mikrotik-Group / Framed-Pool tambahan untuk pelanggan terisolir.') %>
@@ -297,33 +297,33 @@
-
Pembagian IP Pool RADIUS Otomatis
+
<%= t('admin.rds.ipool_title','Pembagian IP Pool RADIUS Otomatis') %>
- + - Jika aktif, RADIUS akan membagikan IP dinamis otomatis ke pelanggan tanpa IP statis sehingga tidak tergantung pada pool lokal MikroTik. + <%= t('admin.rds.ipool_desc','Jika aktif, RADIUS akan membagikan IP dinamis otomatis ke pelanggan tanpa IP statis sehingga tidak tergantung pada pool lokal MikroTik.') %>
- +
- +
- +
@@ -332,34 +332,34 @@
-
Auto-Generate Akun PPPoE (Pelanggan Baru)
+
<%= t('admin.rds.autogen_title','Auto-Generate Akun PPPoE (Pelanggan Baru)') %>
-
Dipakai saat admin menyetujui pendaftar atau menekan Generate Akun PPPoE. Berlaku untuk mode MikroTik maupun RADIUS.
+
<%- t('admin.rds.autogen_hint','Dipakai saat admin menyetujui pendaftar atau menekan Generate Akun PPPoE. Berlaku untuk mode MikroTik maupun RADIUS.') %>
- +
- +
- -
Username = pola + @ + domain. Contoh: budi_santoso@sky.id
+ +
<%- t('admin.rds.username_hint','Username = pola + @ + domain. Contoh: budi_santoso@openisp.id') %>
- +
@@ -368,14 +368,14 @@
-
Mode Profil MikroTik (RADIUS)
+
<%= t('admin.rds.profile_title','Mode Profil MikroTik (RADIUS)') %>
-
Jika Ya: RADIUS hanya mengautentikasi & mengirim Mikrotik-Group (nama paket) — rate-limit & IP diambil dari profil PPP di MikroTik (RADIUS tidak mengirim atribut Rate-Limit maupun IP). Pastikan nama profil di MikroTik = nama paket.
+
<%- t('admin.rds.profile_hint','Jika Ya: RADIUS hanya mengautentikasi & mengirim Mikrotik-Group (nama paket) — rate-limit & IP diambil dari profil PPP di MikroTik (RADIUS tidak mengirim atribut Rate-Limit maupun IP). Pastikan nama profil di MikroTik = nama paket.') %>
- +
@@ -384,17 +384,17 @@
-
Script Setup Otomatis MikroTik (RADIUS & Isolir)
+
<%= t('admin.rds.script_title','Script Setup Otomatis MikroTik (RADIUS & Isolir)') %>
- + - +
- - Jalankan perintah ini di terminal server Linux (VPS / Server Produksi) agar router dapat menghubungi server: + + <%= t('admin.rds.ufw_desc','Jalankan perintah ini di terminal server Linux (VPS / Server Produksi) agar router dapat menghubungi server:') %>
sudo ufw allow <%= radiusStatus.authPort %>/udp
sudo ufw allow <%= radiusStatus.acctPort %>/udp @@ -402,8 +402,8 @@
- - Copy dan pastekan seluruh script di bawah ini ke Terminal MikroTik (IP server otomatis terisi dari IP di atas): + + <%- t('admin.rds.mt_desc','Copy dan pastekan seluruh script di bawah ini ke Terminal MikroTik (IP server otomatis terisi dari IP di atas):') %>