@pvway/alpha-oas
Version:
Alpha OAuth Service by p.v.Way
58 lines • 6.68 kB
JavaScript
// noinspection JSUnresolvedReference
import { AlphaAuthStatusEnum } from "./alpha-oas-abstractions";
export class AlphaPrincipal {
mStatus;
get status() {
return this.mStatus;
}
setStatus(status) {
this.mStatus = status;
}
mUser;
get user() {
return this.mUser;
}
setUser(user) {
this.mUser = user;
this.setSessionLanguageCode(user.languageCode);
}
setSessionLanguageCode(lc) {
// interceptor will use this value for inserting
// the language-code header on each outgoing request
sessionStorage.setItem('alphaLanguageCode', lc);
}
clearUser() {
this.mUser = null;
sessionStorage.removeItem('alphaLanguageCode');
}
get languageCode() {
if (this.mUser) {
return this.mUser.languageCode;
}
const lsLc = sessionStorage.getItem('alphaLanguageCode');
if (lsLc) {
return lsLc;
}
const nav = window.navigator;
const userLang = (nav.language || nav.userLanguage);
return userLang
? userLang.substring(0, 2).toLowerCase()
: 'en';
}
get isAuthenticated() {
return this.mStatus === AlphaAuthStatusEnum.Authenticated;
}
get isAnonymous() {
return this.mStatus === AlphaAuthStatusEnum.Undefined
|| this.mStatus === AlphaAuthStatusEnum.Anonymous;
}
get isAuthenticating() {
return this.mStatus === AlphaAuthStatusEnum.Authenticating
|| this.mStatus === AlphaAuthStatusEnum.Refreshing;
}
constructor() {
this.mStatus = AlphaAuthStatusEnum.Undefined;
this.mUser = null;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGEtcHJpbmNpcGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWxwaGEtb2FzL3NyYy9saWIvYWxwaGEtcHJpbmNpcGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUVyQyxPQUFPLEVBQUMsbUJBQW1CLEVBQThCLE1BQU0sMEJBQTBCLENBQUM7QUFFMUYsTUFBTSxPQUFPLGNBQWM7SUFFakIsT0FBTyxDQUFzQjtJQUNyQyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUEyQjtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRU8sS0FBSyxDQUFvQjtJQUNqQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFnQjtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxFQUFVO1FBQy9CLGdEQUFnRDtRQUNoRCxvREFBb0Q7UUFDcEQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQWMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFnQixDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFXLENBQUM7UUFDOUQsT0FBTyxRQUFRO1lBQ2IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssbUJBQW1CLENBQUMsYUFBYSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssbUJBQW1CLENBQUMsU0FBUztlQUNoRCxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDLGNBQWM7ZUFDckQsSUFBSSxDQUFDLE9BQU8sS0FBSyxtQkFBbUIsQ0FBQyxVQUFVLENBQUM7SUFDdkQsQ0FBQztJQUVEO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbm9pbnNwZWN0aW9uIEpTVW5yZXNvbHZlZFJlZmVyZW5jZVxyXG5cclxuaW1wb3J0IHtBbHBoYUF1dGhTdGF0dXNFbnVtLCBJQWxwaGFQcmluY2lwYWwsIElBbHBoYVVzZXJ9IGZyb20gXCIuL2FscGhhLW9hcy1hYnN0cmFjdGlvbnNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBbHBoYVByaW5jaXBhbCBpbXBsZW1lbnRzIElBbHBoYVByaW5jaXBhbCB7XHJcblxyXG4gIHByaXZhdGUgbVN0YXR1czogQWxwaGFBdXRoU3RhdHVzRW51bTtcclxuICBnZXQgc3RhdHVzKCk6IEFscGhhQXV0aFN0YXR1c0VudW0ge1xyXG4gICAgcmV0dXJuIHRoaXMubVN0YXR1cztcclxuICB9XHJcbiAgc2V0U3RhdHVzKHN0YXR1czogQWxwaGFBdXRoU3RhdHVzRW51bSk6IHZvaWQge1xyXG4gICAgdGhpcy5tU3RhdHVzID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtVXNlcjogSUFscGhhVXNlciB8IG51bGw7XHJcbiAgZ2V0IHVzZXIoKTogSUFscGhhVXNlciB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMubVVzZXI7XHJcbiAgfVxyXG4gIHNldFVzZXIodXNlcjogSUFscGhhVXNlcik6IHZvaWQge1xyXG4gICAgdGhpcy5tVXNlciA9IHVzZXI7XHJcbiAgICB0aGlzLnNldFNlc3Npb25MYW5ndWFnZUNvZGUodXNlci5sYW5ndWFnZUNvZGUpO1xyXG4gIH1cclxuICBzZXRTZXNzaW9uTGFuZ3VhZ2VDb2RlKGxjOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIGludGVyY2VwdG9yIHdpbGwgdXNlIHRoaXMgdmFsdWUgZm9yIGluc2VydGluZ1xyXG4gICAgLy8gdGhlIGxhbmd1YWdlLWNvZGUgaGVhZGVyIG9uIGVhY2ggb3V0Z29pbmcgcmVxdWVzdFxyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYWxwaGFMYW5ndWFnZUNvZGUnLCBsYyk7XHJcbiAgfVxyXG4gIGNsZWFyVXNlcigpOiB2b2lkIHtcclxuICAgIHRoaXMubVVzZXIgPSBudWxsO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYWxwaGFMYW5ndWFnZUNvZGUnKTtcclxuICB9XHJcblxyXG4gIGdldCBsYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLm1Vc2VyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1Vc2VyLmxhbmd1YWdlQ29kZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxzTGMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhbHBoYUxhbmd1YWdlQ29kZScpO1xyXG4gICAgaWYgKGxzTGMpIHtcclxuICAgICAgcmV0dXJuIGxzTGM7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuYXYgPSB3aW5kb3cubmF2aWdhdG9yIGFzIGFueTtcclxuICAgIGNvbnN0IHVzZXJMYW5nID0gKG5hdi5sYW5ndWFnZSB8fCBuYXYudXNlckxhbmd1YWdlKSBhcyBzdHJpbmc7XHJcbiAgICByZXR1cm4gdXNlckxhbmdcclxuICAgICAgPyB1c2VyTGFuZy5zdWJzdHJpbmcoMCwgMikudG9Mb3dlckNhc2UoKVxyXG4gICAgICA6ICdlbic7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubVN0YXR1cyA9PT0gQWxwaGFBdXRoU3RhdHVzRW51bS5BdXRoZW50aWNhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQW5vbnltb3VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubVN0YXR1cyA9PT0gQWxwaGFBdXRoU3RhdHVzRW51bS5VbmRlZmluZWRcclxuICAgICAgfHwgdGhpcy5tU3RhdHVzID09PSBBbHBoYUF1dGhTdGF0dXNFbnVtLkFub255bW91cztcclxuICB9XHJcblxyXG4gIGdldCBpc0F1dGhlbnRpY2F0aW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubVN0YXR1cyA9PT0gQWxwaGFBdXRoU3RhdHVzRW51bS5BdXRoZW50aWNhdGluZ1xyXG4gICAgICB8fCB0aGlzLm1TdGF0dXMgPT09IEFscGhhQXV0aFN0YXR1c0VudW0uUmVmcmVzaGluZztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5tU3RhdHVzID0gQWxwaGFBdXRoU3RhdHVzRW51bS5VbmRlZmluZWQ7XHJcbiAgICB0aGlzLm1Vc2VyID0gbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==