Merge pull request #50 from ScrawnyRonnie/master

Less IP Address
This commit is contained in:
ScrawnyRonnie 2024-03-24 22:36:52 -04:00 committed by GitHub
commit 0276be42fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 5 deletions

View file

@ -262,7 +262,7 @@ export async function get_accounts_login_info(pagination, sort, filter) {
// this was a really hard query to get right...
// https://www.gab.lc/articles/better_faster_subqueries_postgresql/
const accounts = await pool.query(
'SELECT account.*, COALESCE(l.lastLogin, TIMESTAMP \'epoch\') as last_login, l2.ip_address, l2.canonical_hostname FROM account' +
'SELECT account.*, COALESCE(l.lastLogin, TIMESTAMP \'epoch\') as last_login, l2.ip_address FROM account' +
' LEFT OUTER JOIN (' +
' SELECT MAX(id) as loginId, account_id, MAX(login_time) as lastLogin' +
' FROM login' +
@ -282,10 +282,11 @@ export async function get_accounts_login_info(pagination, sort, filter) {
r.admin = r.gm;
if (r.ip_address !== null) {
const splitOctet = r.ip_address.split('.'); // Split IP address by '.'
const lastOctets = splitOctet.slice(-2).join('.');
r.last_login = {
time: r.last_login,
hostname: r.canonical_hostname,
ip: r.ip_address,
ip: lastOctets,
}
} else {
r.last_login = {}
@ -527,7 +528,25 @@ export async function get_account_logins(account_id, pagination) {
pagination.item_count = login_count;
pagination.page_count = Math.ceil(pagination.item_count / pagination.items_per_page);
logins.rows.forEach((r) => {
if (r.ip_address !== null) {
const splitOctet = r.ip_address.split('.'); // Split IP address by '.'
const lastOctets = splitOctet.slice(-2).join('.');
r.ipAddress = {
ip: lastOctets,
}
} else {
r.last_login = {}
}
delete r.canonical_hostname;
delete r.hostname;
delete r.ip_address;
});
return logins.rows;
} catch (e) {
if (e.code)
e.code = pg_error_inv[e.code]

View file

@ -36,7 +36,7 @@
{#each logins as login, i}
<tr>
<td>
<code>{login.hostname} - {login.ip_address}</code>
<code>{login.ipAddress.ip}</code>
</td>
<td>{moment(login.login_time).format('MMMM Do YYYY, h:mm:ss a')} ({moment(login.login_time).fromNow()})</td>
</tr>

View file

@ -140,7 +140,7 @@
<td>{moment(user.created).fromNow()}</td>
<td>{#if user.last_login.time}
{moment(user.last_login.time).fromNow()}<br/>
<code>{user.last_login.hostname} - {user.last_login.ip}</code>
<code>{user.last_login.ip}</code>
{:else}
Never logged in
{/if}