4fb4e77007
- New GET /api/user/hosts (auth-only): all hosts for admins, group-filtered list for everyone else. - accessibleHosts() accepts a pre-resolved user.groups, so the web UI's OIDC session skips a redundant LDAP getGroups(dn) call. - Dashboard shows a "Hosts you can reach" / "All hosts" table. - @simpleworkjs/ldap 1.0.1 fixes addSshKey's ObjectClassViolationError on accounts predating the ldapPublicKey objectClass -- was aborting key injection (and the SSH connection) on affected accounts. - Bump to 1.5.0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
23 lines
1001 B
JavaScript
23 lines
1001 B
JavaScript
'use strict';
|
|
|
|
// Jump-host page controllers. app.api / app.auth come from app-base.js (the
|
|
// shared client framework); this adds the jump-host data calls and the small
|
|
// render helpers each page uses.
|
|
|
|
app.jump = (function(app){
|
|
function metrics(cb){ app.api.get('metrics', cb); }
|
|
function sessions(cb){ app.api.get('sessions', cb); }
|
|
function audit(query, cb){
|
|
var qs = $.param(query || {});
|
|
app.api.get('audit' + (qs ? '?' + qs : ''), cb);
|
|
}
|
|
function hosts(cb){ app.api.get('user/hosts', cb); }
|
|
return {metrics: metrics, sessions: sessions, audit: audit, hosts: hosts};
|
|
})(app);
|
|
|
|
// Shared render helpers.
|
|
app.jump.fmtTime = function(ts){ return ts ? moment(Number(ts)).format('YYYY-MM-DD HH:mm:ss') : '—'; };
|
|
app.jump.esc = function(s){ return $('<div>').text(s == null ? '' : String(s)).html(); };
|
|
app.jump.result = function(e){ return e.success ? '<span class="badge bg-success">ok</span>'
|
|
: '<span class="badge bg-danger">' + app.jump.esc(e.failReason || 'fail') + '</span>'; };
|