25 lines
827 B
TypeScript
25 lines
827 B
TypeScript
import {CanActivateFn, Router} from '@angular/router';
|
|
import {inject} from '@angular/core';
|
|
import {IndexedDB} from '../storage/indexed-db';
|
|
import {Keyring} from '../storage/keyring';
|
|
import {KeyValue} from '../storage/key-value';
|
|
import {SessionManager} from '@chatenium/chatenium-sdk/services/sessionManager';
|
|
|
|
export const authNeededGuard: CanActivateFn = (route, state) => {
|
|
const indexedDb = inject(IndexedDB)
|
|
const keyring = inject(Keyring)
|
|
const keyValue = inject(KeyValue)
|
|
const router = inject(Router)
|
|
|
|
indexedDb.openDatabase().then(async () => {
|
|
const sessionManager = new SessionManager(indexedDb.getApi(), keyring.getApi(), keyValue.getApi());
|
|
const sessions = await sessionManager.loadSessions()
|
|
|
|
if (sessions.length == 0) {
|
|
router.navigate(['/signin'])
|
|
}
|
|
})
|
|
|
|
return true;
|
|
};
|