UNPKG

@pvway/alpha-oas

Version:

Alpha OAuth Service by p.v.Way

58 lines 6.68 kB
// 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==