diff --git a/NodeApp/src/managers/SessionManager.ts b/NodeApp/src/managers/SessionManager.ts index 6d81a649726c48b592fdcd0dc248007a68fdf727..4d533c08eec39e1fcd9623787104f65a370b2cb8 100644 --- a/NodeApp/src/managers/SessionManager.ts +++ b/NodeApp/src/managers/SessionManager.ts @@ -52,6 +52,8 @@ class SessionManager { async login(user: string, password: string) { const spinner: ora.Ora = ora('Logging in').start(); try { + this.profile = new User(); + const response = await axios.post(HttpManager.LOGIN_URL, { user : user, password: password @@ -82,13 +84,13 @@ class SessionManager { } checkPermissions(verbose: boolean = true, ...checkPermissions: Array<string>): Permissions { - function hasPermission(permissionPredicate: () => boolean, verboseText: string): boolean { + const hasPermission = (permissionPredicate: () => boolean, verboseText: string): boolean => { const spinner: ora.Ora = ora({ text : verboseText, - indent: 8 + indent: 4 }); - let isAllowed: boolean = permissionPredicate(); + let isAllowed: boolean = this.profile.id !== -1 && permissionPredicate(); if ( verbose ) { spinner.start(); @@ -96,7 +98,7 @@ class SessionManager { } return isAllowed; - } + }; return { teachingStaff: checkPermissions.length == 0 || checkPermissions.includes('teachingStaff') ? hasPermission(() => this.profile.isTeachingStaff, 'Teaching staff permissions') : false,