@nik2208/node-auth 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/router/admin.router.js +12 -12
- package/package.json +1 -1
|
@@ -134,7 +134,7 @@ function doLogin() {
|
|
|
134
134
|
sessionStorage.setItem('admin_token', val);
|
|
135
135
|
_token = val;
|
|
136
136
|
document.getElementById('login-error').style.display = 'none';
|
|
137
|
-
api('GET', '/
|
|
137
|
+
api('GET', '/api/ping').then(() => {
|
|
138
138
|
document.getElementById('login').style.display = 'none';
|
|
139
139
|
document.getElementById('app').style.display = 'flex';
|
|
140
140
|
document.getElementById('app').style.flexDirection = 'column';
|
|
@@ -153,7 +153,7 @@ function doLogout() {
|
|
|
153
153
|
document.getElementById('secret-input').addEventListener('keydown', e => { if (e.key === 'Enter') doLogin(); });
|
|
154
154
|
// Auto-login if token stored
|
|
155
155
|
const stored = sessionStorage.getItem('admin_token');
|
|
156
|
-
if (stored) { _token = stored; api('GET', '/
|
|
156
|
+
if (stored) { _token = stored; api('GET', '/api/ping').then(() => {
|
|
157
157
|
document.getElementById('login').style.display = 'none';
|
|
158
158
|
document.getElementById('app').style.display = 'flex';
|
|
159
159
|
document.getElementById('app').style.flexDirection = 'column';
|
|
@@ -218,7 +218,7 @@ async function renderUsers() {
|
|
|
218
218
|
const main = document.getElementById('main');
|
|
219
219
|
main.innerHTML = '<div class="card"><div class="card-header"><h2>Users</h2><span class="meta"><span class="spinner"></span></span></div></div>';
|
|
220
220
|
try {
|
|
221
|
-
const { users, total } = await api('GET', '/
|
|
221
|
+
const { users, total } = await api('GET', '/api/users?limit=' + PAGE_SIZE + '&offset=' + (_state.users.page * PAGE_SIZE));
|
|
222
222
|
const hasMore = (_state.users.page + 1) * PAGE_SIZE < total;
|
|
223
223
|
main.innerHTML = \`
|
|
224
224
|
<div class="card">
|
|
@@ -250,7 +250,7 @@ async function renderUsers() {
|
|
|
250
250
|
async function deleteUser(id, email) {
|
|
251
251
|
if (!confirm('Delete user ' + email + '? This cannot be undone.')) return;
|
|
252
252
|
try {
|
|
253
|
-
await api('DELETE', '/
|
|
253
|
+
await api('DELETE', '/api/users/' + encodeURIComponent(id));
|
|
254
254
|
flash('User deleted');
|
|
255
255
|
renderUsers();
|
|
256
256
|
} catch (e) { flash(e.message, 'error'); }
|
|
@@ -261,7 +261,7 @@ async function renderSessions() {
|
|
|
261
261
|
const main = document.getElementById('main');
|
|
262
262
|
main.innerHTML = '<div class="card"><div class="card-header"><h2>Sessions</h2><span class="meta"><span class="spinner"></span></span></div></div>';
|
|
263
263
|
try {
|
|
264
|
-
const { sessions, total } = await api('GET', '/
|
|
264
|
+
const { sessions, total } = await api('GET', '/api/sessions?limit=' + PAGE_SIZE + '&offset=' + (_state.sessions.page * PAGE_SIZE));
|
|
265
265
|
const hasMore = (_state.sessions.page + 1) * PAGE_SIZE < total;
|
|
266
266
|
main.innerHTML = \`
|
|
267
267
|
<div class="card">
|
|
@@ -291,7 +291,7 @@ async function renderSessions() {
|
|
|
291
291
|
}
|
|
292
292
|
async function revokeSession(handle) {
|
|
293
293
|
try {
|
|
294
|
-
await api('DELETE', '/
|
|
294
|
+
await api('DELETE', '/api/sessions/' + encodeURIComponent(handle));
|
|
295
295
|
flash('Session revoked');
|
|
296
296
|
renderSessions();
|
|
297
297
|
} catch (e) { flash(e.message, 'error'); }
|
|
@@ -302,7 +302,7 @@ async function renderRoles() {
|
|
|
302
302
|
const main = document.getElementById('main');
|
|
303
303
|
main.innerHTML = '<div class="card"><div class="card-header"><h2>Roles</h2><span class="meta"><span class="spinner"></span></span></div></div>';
|
|
304
304
|
try {
|
|
305
|
-
const { roles } = await api('GET', '/
|
|
305
|
+
const { roles } = await api('GET', '/api/roles');
|
|
306
306
|
let html = '<div class="card"><div class="card-header"><h2>Roles & Permissions</h2></div>';
|
|
307
307
|
if (roles.length === 0) {
|
|
308
308
|
html += '<div class="empty">No roles defined</div>';
|
|
@@ -335,7 +335,7 @@ async function createRole() {
|
|
|
335
335
|
const perms = document.getElementById('new-role-perms').value.split(',').map(s => s.trim()).filter(Boolean);
|
|
336
336
|
if (!name) return;
|
|
337
337
|
try {
|
|
338
|
-
await api('POST', '/
|
|
338
|
+
await api('POST', '/api/roles', { name, permissions: perms });
|
|
339
339
|
flash('Role created');
|
|
340
340
|
renderRoles();
|
|
341
341
|
} catch (e) { flash(e.message, 'error'); }
|
|
@@ -343,7 +343,7 @@ async function createRole() {
|
|
|
343
343
|
async function deleteRole(name) {
|
|
344
344
|
if (!confirm('Delete role "' + name + '"?')) return;
|
|
345
345
|
try {
|
|
346
|
-
await api('DELETE', '/
|
|
346
|
+
await api('DELETE', '/api/roles/' + encodeURIComponent(name));
|
|
347
347
|
flash('Role deleted');
|
|
348
348
|
renderRoles();
|
|
349
349
|
} catch (e) { flash(e.message, 'error'); }
|
|
@@ -354,7 +354,7 @@ async function renderTenants() {
|
|
|
354
354
|
const main = document.getElementById('main');
|
|
355
355
|
main.innerHTML = '<div class="card"><div class="card-header"><h2>Tenants</h2><span class="meta"><span class="spinner"></span></span></div></div>';
|
|
356
356
|
try {
|
|
357
|
-
const { tenants } = await api('GET', '/
|
|
357
|
+
const { tenants } = await api('GET', '/api/tenants');
|
|
358
358
|
let html = '<div class="card"><div class="card-header"><h2>Tenants</h2><span class="meta">' + tenants.length + ' total</span></div>';
|
|
359
359
|
html += '<div class="table-wrap"><table><thead><tr><th>ID</th><th>Name</th><th>Status</th><th>Created</th><th></th></tr></thead><tbody>';
|
|
360
360
|
if (tenants.length === 0) {
|
|
@@ -387,7 +387,7 @@ async function createTenant() {
|
|
|
387
387
|
const name = document.getElementById('new-tenant-name').value.trim();
|
|
388
388
|
if (!name) return;
|
|
389
389
|
try {
|
|
390
|
-
await api('POST', '/
|
|
390
|
+
await api('POST', '/api/tenants', { name, isActive: true });
|
|
391
391
|
flash('Tenant created');
|
|
392
392
|
renderTenants();
|
|
393
393
|
} catch (e) { flash(e.message, 'error'); }
|
|
@@ -395,7 +395,7 @@ async function createTenant() {
|
|
|
395
395
|
async function deleteTenant(id) {
|
|
396
396
|
if (!confirm('Delete tenant ' + id + '?')) return;
|
|
397
397
|
try {
|
|
398
|
-
await api('DELETE', '/
|
|
398
|
+
await api('DELETE', '/api/tenants/' + encodeURIComponent(id));
|
|
399
399
|
flash('Tenant deleted');
|
|
400
400
|
renderTenants();
|
|
401
401
|
} catch (e) { flash(e.message, 'error'); }
|