@nakedcreativity/membrs-angular-helper 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/bundles/nakedcreativity-membrs-angular-helper.umd.js +467 -0
- package/bundles/nakedcreativity-membrs-angular-helper.umd.js.map +1 -0
- package/bundles/nakedcreativity-membrs-angular-helper.umd.min.js +16 -0
- package/bundles/nakedcreativity-membrs-angular-helper.umd.min.js.map +1 -0
- package/esm2015/lib/config.interface.js +1 -0
- package/esm2015/lib/config.service.js +7 -0
- package/esm2015/lib/membrs.module.js +100 -0
- package/esm2015/lib/membrs.service.js +98 -0
- package/esm2015/lib/router.config.js +25 -0
- package/esm2015/nakedcreativity-membrs-angular-helper.js +6 -0
- package/esm2015/public-api.js +9 -0
- package/esm5/lib/config.interface.js +1 -0
- package/esm5/lib/config.service.js +7 -0
- package/esm5/lib/membrs.module.js +104 -0
- package/esm5/lib/membrs.service.js +113 -0
- package/esm5/lib/router.config.js +25 -0
- package/esm5/nakedcreativity-membrs-angular-helper.js +6 -0
- package/esm5/public-api.js +9 -0
- package/fesm2015/nakedcreativity-membrs-angular-helper.js +226 -0
- package/fesm2015/nakedcreativity-membrs-angular-helper.js.map +1 -0
- package/fesm5/nakedcreativity-membrs-angular-helper.js +245 -0
- package/fesm5/nakedcreativity-membrs-angular-helper.js.map +1 -0
- package/lib/config.interface.d.ts +7 -0
- package/lib/config.service.d.ts +7 -0
- package/lib/membrs.module.d.ts +23 -0
- package/lib/membrs.service.d.ts +17 -0
- package/lib/router.config.d.ts +3 -0
- package/nakedcreativity-membrs-angular-helper.d.ts +6 -0
- package/nakedcreativity-membrs-angular-helper.metadata.json +1 -0
- package/package.json +21 -0
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@nakedcreativity/membrs-angular-helper/lib/config.service.ts","ng://@nakedcreativity/membrs-angular-helper/lib/membrs.service.ts","ng://@nakedcreativity/membrs-angular-helper/lib/router.config.ts","ng://@nakedcreativity/membrs-angular-helper/lib/membrs.module.ts","ng://@nakedcreativity/membrs-angular-helper/public-api.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","MembrsConfigService","InjectionToken","MembrsService","jwtService","http","config","this","_lsKey","console","log","localStorage","getItem","token","paramIndex","decorator","prototype","reissue","_this","Promise","resolve","reject","_token","reissueIn","_decoded","exp","Math","floor","Date","now","post","apiProtocol","api","subscribe","response","error","setItem","decodeToken","profile","permission","logout","get","responseType","removeItem","login","JwtHelperService","HttpClient","Inject","args","Injectable","providedIn","routerConfigFn","router","injector","transitionService","stateService","Injector","call","defaultErrorHandler","detail","window","location","href","go","defaultState","validateResolve","deps","Transition","UIRouter","resolveFn","validateResolveFn","reissueResolve","reissueResolveFn","reissueState","name","url","views","transition","membrsService","params","then","inherit","catch","STATES","MembrsModule","forRoot","moduleProviders","JwtModule","providers","push","UIRouterModule","forChild","states","provide","useValue","ngModule","MembrsModule_1","NgModule","imports","CommonModule","HttpClientModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { MembrsConfig } from './config.interface';\n\n/**\n * This is not a real service, but it looks like it from the outside.\n * It's just an InjectionTToken used to import the config object, provided from the outside\n */\nexport const MembrsConfigService = new InjectionToken<MembrsConfig>(\"MembrsConfig\");\n","import { Injectable, Inject } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { HttpClient } from '@angular/common/http'\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class MembrsService {\n\n private _token: string;\n private _decoded: any;\n private _lsKey: string = 'membrs';\n\n constructor(private jwtService: JwtHelperService, private http: HttpClient, @Inject(MembrsConfigService) private config: MembrsConfig) {\n\n console.log('membrs constructor')\n // if the token exists in local storage, retrieve it back to the service\n if(localStorage.getItem(this._lsKey)){\n this.token = localStorage.getItem(this._lsKey)\n }\n \n }\n\n reissue(token?:string){\n\n return new Promise((resolve, reject)=>{\n\n if(!token && !this._token){\n console.log('reject, not logged in')\n reject('NOT_LOGGED_IN')\n }\n\n if(token)\n this.token = token\n\n // check stored token has not expired, or needs to be reissued soon\n var reissueIn = this._decoded.exp - Math.floor(Date.now()/1000)\n \n // token has expired\n if(reissueIn < 0){\n reject('NOT_LOGGED_IN')\n }\n \n // token expiring soon\n if(reissueIn < 300){\n \n console.log('expires less than 300')\n // to-do: call Apollo here\n\n this.http.post(this.config.apiProtocol + this.config.api+'/token/'+this._token, {}).subscribe((response:any)=>{\n console.log('reissue response')\n console.log(response)\n if(response.token){\n this.token = response.token\n resolve(this._token)\n }else {\n reject('NOT_LOGGED_IN')\n }\n \n }, error=>{\n reject('NOT_LOGGED_IN')\n })\n\n }else {\n console.log('token ok')\n resolve(this._token)\n }\n \n })\n \n }\n\n set token(token){\n this._token = token\n localStorage.setItem(this._lsKey, token)\n this._decoded = this.jwtService.decodeToken(this._token)\n }\n\n get profile(){\n return this._decoded\n }\n\n get admin (){\n return this.profile.permission == 1\n }\n\n logout(){\n return new Promise((resolve, reject)=>{\n this.http.get(this.config.apiProtocol+this.config.api+'/token/'+this._token+'/delete', {responseType: 'text'}).subscribe((response:any)=>{\n this._token = null;\n localStorage.removeItem(this._lsKey)\n resolve(this.config.login)\n //this.router.stateService.go('dashboard')\n }, error=>{\n reject(this.config.login)\n })\n })\n \n }\n\n\n}\n","import { UIRouter } from '@uirouter/core';\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\nimport { Injector } from '@angular/core';\n\nexport function routerConfigFn(router: UIRouter, injector: Injector) {\n\n const transitionService = router.transitionService;\n const stateService = router.stateService\n\n\n const config = Injector.call(MembrsConfigService)\n\n console.log('config in router config fn')\n console.log(config)\n\n// transitionService.onStart({}, (transition)=>{\n// \tconsole.log('start transition')\n// \t console.log(transition.params())\n// \t console.log(transition.paramsChanged())\n// })\n\n \tstateService.defaultErrorHandler(function(error) {\n\t\t \n\t\t// console.log('error')\n\t\t// console.log(error)\n\t\tconsole.log('default error handler')\n \t \tif(error.detail == 'NOT_LOGGED_IN')\n\t\t\twindow.location.href = config.login;\n\t\t\t//console.log(MembrsSettings)\n\n\t\tif(error.detail == 'INSUFFICIENT_PERMISSIONS')\n\t\t\tstateService.go(config.defaultState)\n\n\t});\n\t\n}","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MembrsService } from './membrs.service';\nimport { JwtModule } from \"@auth0/angular-jwt\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { UIRouterModule } from '@uirouter/angular'\n\nimport { Ng2StateDeclaration } from '@uirouter/angular';\nimport { Transition, UIRouter } from '@uirouter/angular'\n\nimport { routerConfigFn } from './router.config';\nimport { MembrsConfig } from './config.interface';\nimport { MembrsConfigService } from './config.service';\n\nexport const validateResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService ],\n resolveFn: validateResolveFn\n}\n\nexport const reissueResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService ],\n resolveFn: reissueResolveFn\n}\n\nexport const reissueState:Ng2StateDeclaration = {\n\tname: 'reissue', \n\turl: '/reissue?token',\n\tviews: { },\n\tresolve: [\n reissueResolve\n\t]\n}\n\nexport function reissueResolveFn(transition, router, membrsService) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('reissue promise resolve')\n console.log(transition.params().token)\n membrsService.reissue(transition.params().token).then((response)=>{\n console.log('redirect to dashboard state')\n router.stateService.go('dashboard',{}, {inherit:false})\n resolve()\n }).catch(error=>{\n //window.location.href = environment.login\n reject(error)\n })\n\n\t})\n}\n\nexport function validateResolveFn(transition, router, membrsService) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('validate promise resolve')\n \n membrsService.reissue().then((response)=>{\n resolve()\n }).catch(error=>{\n //window.location.href = environment.login\n reject(error)\n })\n\n})\n}\n\n\n/** The top level state(s) */\nexport const STATES = [\n reissueState\n]\n\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule\n // UIRouterModule.forChild({\n // states: STATES,\n // config: routerConfigFn,\n // }),\n // JwtModule.forRoot({})\n ]\n})\n\n\n\nexport class MembrsModule { \n static forRoot(config: MembrsConfig): ModuleWithProviders<MembrsModule> {\n\n\n const moduleProviders = JwtModule.forRoot({}).providers;\n moduleProviders.push(UIRouterModule.forChild({\n states: STATES,\n config: routerConfigFn\n }).providers)\n \n moduleProviders.push(MembrsService)\n moduleProviders.push({provide: MembrsConfigService,useValue: config});\n return {\n ngModule: MembrsModule, \n providers: moduleProviders\n };\n\n\n return {\n ngModule: MembrsModule,\n providers: [\n MembrsService,\n {\n provide: MembrsConfigService,\n useValue: config\n },\n ]\n }\n }\n\n}\n","/*\n * Public API Surface of membrs\n */\n\nexport * from './lib/membrs.service';\nexport * from './lib/membrs.module';\n\nexport function retrieveToken() {\n return localStorage.getItem('membrs');\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibGliL2NvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWVtYnJzQ29uZmlnIHtcbiAgICBncmFwaFFMOiBzdHJpbmcsXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgYXBpUHJvdG9jb2w6IHN0cmluZyxcbiAgICBsb2dpbjogc3RyaW5nLFxuICAgIGRlZmF1bHRTdGF0ZTogc3RyaW5nXG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* This is not a real service, but it looks like it from the outside.
|
|
4
|
+
* It's just an InjectionTToken used to import the config object, provided from the outside
|
|
5
|
+
*/
|
|
6
|
+
export const MembrsConfigService = new InjectionToken("MembrsConfig");
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmFrZWRjcmVhdGl2aXR5L21lbWJycy1hbmd1bGFyLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhpcyBpcyBub3QgYSByZWFsIHNlcnZpY2UsIGJ1dCBpdCBsb29rcyBsaWtlIGl0IGZyb20gdGhlIG91dHNpZGUuXG4gKiBJdCdzIGp1c3QgYW4gSW5qZWN0aW9uVFRva2VuIHVzZWQgdG8gaW1wb3J0IHRoZSBjb25maWcgb2JqZWN0LCBwcm92aWRlZCBmcm9tIHRoZSBvdXRzaWRlXG4gKi9cbmV4cG9ydCBjb25zdCBNZW1icnNDb25maWdTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPE1lbWJyc0NvbmZpZz4oXCJNZW1icnNDb25maWdcIik7XG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var MembrsModule_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { MembrsService } from './membrs.service';
|
|
6
|
+
import { JwtModule } from "@auth0/angular-jwt";
|
|
7
|
+
import { HttpClientModule } from "@angular/common/http";
|
|
8
|
+
import { UIRouterModule } from '@uirouter/angular';
|
|
9
|
+
import { Transition, UIRouter } from '@uirouter/angular';
|
|
10
|
+
import { routerConfigFn } from './router.config';
|
|
11
|
+
import { MembrsConfigService } from './config.service';
|
|
12
|
+
export const validateResolve = {
|
|
13
|
+
token: 'reissue',
|
|
14
|
+
deps: [Transition, UIRouter, MembrsService],
|
|
15
|
+
resolveFn: validateResolveFn
|
|
16
|
+
};
|
|
17
|
+
export const reissueResolve = {
|
|
18
|
+
token: 'reissue',
|
|
19
|
+
deps: [Transition, UIRouter, MembrsService],
|
|
20
|
+
resolveFn: reissueResolveFn
|
|
21
|
+
};
|
|
22
|
+
export const reissueState = {
|
|
23
|
+
name: 'reissue',
|
|
24
|
+
url: '/reissue?token',
|
|
25
|
+
views: {},
|
|
26
|
+
resolve: [
|
|
27
|
+
reissueResolve
|
|
28
|
+
]
|
|
29
|
+
};
|
|
30
|
+
export function reissueResolveFn(transition, router, membrsService) {
|
|
31
|
+
//console.log(membrsService)
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
console.log('reissue promise resolve');
|
|
34
|
+
console.log(transition.params().token);
|
|
35
|
+
membrsService.reissue(transition.params().token).then((response) => {
|
|
36
|
+
console.log('redirect to dashboard state');
|
|
37
|
+
router.stateService.go('dashboard', {}, { inherit: false });
|
|
38
|
+
resolve();
|
|
39
|
+
}).catch(error => {
|
|
40
|
+
//window.location.href = environment.login
|
|
41
|
+
reject(error);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export function validateResolveFn(transition, router, membrsService) {
|
|
46
|
+
//console.log(membrsService)
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
console.log('validate promise resolve');
|
|
49
|
+
membrsService.reissue().then((response) => {
|
|
50
|
+
resolve();
|
|
51
|
+
}).catch(error => {
|
|
52
|
+
//window.location.href = environment.login
|
|
53
|
+
reject(error);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/** The top level state(s) */
|
|
58
|
+
export const STATES = [
|
|
59
|
+
reissueState
|
|
60
|
+
];
|
|
61
|
+
let MembrsModule = MembrsModule_1 = class MembrsModule {
|
|
62
|
+
static forRoot(config) {
|
|
63
|
+
const moduleProviders = JwtModule.forRoot({}).providers;
|
|
64
|
+
moduleProviders.push(UIRouterModule.forChild({
|
|
65
|
+
states: STATES,
|
|
66
|
+
config: routerConfigFn
|
|
67
|
+
}).providers);
|
|
68
|
+
moduleProviders.push(MembrsService);
|
|
69
|
+
moduleProviders.push({ provide: MembrsConfigService, useValue: config });
|
|
70
|
+
return {
|
|
71
|
+
ngModule: MembrsModule_1,
|
|
72
|
+
providers: moduleProviders
|
|
73
|
+
};
|
|
74
|
+
return {
|
|
75
|
+
ngModule: MembrsModule_1,
|
|
76
|
+
providers: [
|
|
77
|
+
MembrsService,
|
|
78
|
+
{
|
|
79
|
+
provide: MembrsConfigService,
|
|
80
|
+
useValue: config
|
|
81
|
+
},
|
|
82
|
+
]
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
MembrsModule = MembrsModule_1 = __decorate([
|
|
87
|
+
NgModule({
|
|
88
|
+
imports: [
|
|
89
|
+
CommonModule,
|
|
90
|
+
HttpClientModule
|
|
91
|
+
// UIRouterModule.forChild({
|
|
92
|
+
// states: STATES,
|
|
93
|
+
// config: routerConfigFn,
|
|
94
|
+
// }),
|
|
95
|
+
// JwtModule.forRoot({})
|
|
96
|
+
]
|
|
97
|
+
})
|
|
98
|
+
], MembrsModule);
|
|
99
|
+
export { MembrsModule };
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYnJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibGliL21lbWJycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxDQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFFO0lBQzdDLFNBQVMsRUFBRSxpQkFBaUI7Q0FDL0IsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixLQUFLLEVBQUUsU0FBUztJQUNoQixJQUFJLEVBQUUsQ0FBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBRTtJQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO0NBQzVCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXVCO0lBQy9DLElBQUksRUFBRSxTQUFTO0lBQ2YsR0FBRyxFQUFFLGdC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QzVCLG9CQUFvQjtZQUNwQiw0QkFBNEI7WUFDNUIsTUFBTTtZQUNOLHdCQUF3QjtTQUN6QjtLQUNGLENBQUM7R0FJVyxZQUFZLENBOEJ4QjtTQTlCWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWVtYnJzU2VydmljZSB9IGZyb20gJy4vbWVtYnJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnd0TW9kdWxlIH0gZnJvbSBcIkBhdXRoMC9hbmd1bGFyLWp3dFwiO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgVUlSb3V0ZXJNb2R1bGUgfSBmcm9tICdAdWlyb3V0ZXIvYW5ndWxhcidcblxuaW1wb3J0IHsgTmcyU3RhdGVEZWNsYXJhdGlvbiB9IGZyb20gJ0B1aXJvdXRlci9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zaXRpb24sIFVJUm91dGVyIH0gZnJvbSAnQHVpcm91dGVyL2FuZ3VsYXInXG5cbmltcG9ydCB7IHJvdXRlckNvbmZpZ0ZuIH0gZnJvbSAnLi9yb3V0ZXIuY29uZmlnJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1icnNDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlc29sdmUgPSB7XG4gICAgdG9rZW46ICdyZWlzc3VlJyxcbiAgICBkZXBzOiBbIFRyYW5zaXRpb24sIFVJUm91dGVyLCBNZW1icnNTZXJ2aWNlIF0sXG4gICAgcmVzb2x2ZUZuOiB2YWxpZGF0ZVJlc29sdmVGblxufVxuXG5leHBvcnQgY29uc3QgcmVpc3N1ZVJlc29sdmUgPSB7XG4gIHRva2VuOiAncmVpc3N1ZScsXG4gIGRlcHM6IFsgVHJhbnNpdGlvbiwgVUlSb3V0ZXIsIE1lbWJyc1NlcnZpY2UgXSxcbiAgcmVzb2x2ZUZuOiByZWlzc3VlUmVzb2x2ZUZuXG59XG5cbmV4cG9ydCBjb25zdCByZWlzc3VlU3RhdGU6TmcyU3RhdGVEZWNsYXJhdGlvbiA9IHtcblx0bmFtZTogJ3JlaXNzdWUnLCBcblx0dXJsOiAnL3JlaXNzdWU/dG9rZW4nLFxuXHR2aWV3czogeyB9LFxuXHRyZXNvbHZlOiBbXG4gICAgcmVpc3N1ZVJlc29sdmVcblx0XVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVpc3N1ZVJlc29sdmVGbih0cmFuc2l0aW9uLCByb3V0ZXIsIG1lbWJyc1NlcnZpY2UpIHtcbiAgICBcbiAgICAvL2NvbnNvbGUubG9nKG1lbWJyc1NlcnZpY2UpXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdyZWlzc3VlIHByb21pc2UgcmVzb2x2ZScpXG4gICAgICBjb25zb2xlLmxvZyh0cmFuc2l0aW9uLnBhcmFtcygpLnRva2VuKVxuICAgICAgbWVtYnJzU2VydmljZS5yZWlzc3VlKHRyYW5zaXRpb24ucGFyYW1zKCkudG9rZW4pLnRoZW4oKHJlc3BvbnNlKT0+e1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdyZWRpcmVjdCB0byBkYXNoYm9hcmQgc3RhdGUnKVxuICAgICAgICAgIHJvdXRlci5zdGF0ZVNlcnZpY2UuZ28oJ2Rhc2hib2FyZCcse30sIHtpbmhlcml0OmZhbHNlfSlcbiAgICAgICAgICByZXNvbHZlKClcbiAgICAgIH0pLmNhdGNoKGVycm9yPT57XG4gICAgICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZiA9IGVudmlyb25tZW50LmxvZ2luXG4gICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgfSlcblxuXHR9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSZXNvbHZlRm4odHJhbnNpdGlvbiwgcm91dGVyLCBtZW1icnNTZXJ2aWNlKSB7XG4gIFxuICAvL2NvbnNvbGUubG9nKG1lbWJyc1NlcnZpY2UpXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc29sZS5sb2coJ3ZhbGlkYXRlIHByb21pc2UgcmVzb2x2ZScpXG4gICAgXG4gICAgbWVtYnJzU2VydmljZS5yZWlzc3VlKCkudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgIHJlc29sdmUoKVxuICAgIH0pLmNhdGNoKGVycm9yPT57XG4gICAgICAgIC8vd2luZG93LmxvY2F0aW9uLmhyZWYgPSBlbnZpcm9ubWVudC5sb2dpblxuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgfSlcblxufSlcbn1cblxuXG4vKiogVGhlIHRvcCBsZXZlbCBzdGF0ZShzKSAqL1xuZXhwb3J0IGNvbnN0IFNUQVRFUyA9IFtcbiAgICByZWlzc3VlU3RhdGVcbl1cblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGVcbiAgICAvLyBVSVJvdXRlck1vZHVsZS5mb3JDaGlsZCh7XG4gICAgLy8gICBzdGF0ZXM6IFNUQVRFUyxcbiAgICAvLyAgIGNvbmZpZzogcm91dGVyQ29uZmlnRm4sXG4gICAgLy8gfSksXG4gICAgLy8gSnd0TW9kdWxlLmZvclJvb3Qoe30pXG4gIF1cbn0pXG5cblxuXG5leHBvcnQgY2xhc3MgTWVtYnJzTW9kdWxlIHsgXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogTWVtYnJzQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNZW1icnNNb2R1bGU+IHtcblxuXG4gICAgY29uc3QgbW9kdWxlUHJvdmlkZXJzID0gSnd0TW9kdWxlLmZvclJvb3Qoe30pLnByb3ZpZGVycztcbiAgICBtb2R1bGVQcm92aWRlcnMucHVzaChVSVJvdXRlck1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICAgIHN0YXRlczogU1RBVEVTLFxuICAgICAgICBjb25maWc6IHJvdXRlckNvbmZpZ0ZuXG4gICAgICB9KS5wcm92aWRlcnMpXG4gICAgICBcbiAgICBtb2R1bGVQcm92aWRlcnMucHVzaChNZW1icnNTZXJ2aWNlKVxuICAgIG1vZHVsZVByb3ZpZGVycy5wdXNoKHtwcm92aWRlOiBNZW1icnNDb25maWdTZXJ2aWNlLHVzZVZhbHVlOiBjb25maWd9KTtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE1lbWJyc01vZHVsZSwgXG4gICAgICBwcm92aWRlcnM6IG1vZHVsZVByb3ZpZGVyc1xuICAgIH07XG5cblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWVtYnJzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE1lbWJyc1NlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNZW1icnNDb25maWdTZXJ2aWNlLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
|
3
|
+
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
4
|
+
import { HttpClient } from '@angular/common/http';
|
|
5
|
+
import { MembrsConfigService } from './config.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@auth0/angular-jwt";
|
|
8
|
+
import * as i2 from "@angular/common/http";
|
|
9
|
+
import * as i3 from "./config.service";
|
|
10
|
+
let MembrsService = class MembrsService {
|
|
11
|
+
constructor(jwtService, http, config) {
|
|
12
|
+
this.jwtService = jwtService;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.config = config;
|
|
15
|
+
this._lsKey = 'membrs';
|
|
16
|
+
console.log('membrs constructor');
|
|
17
|
+
// if the token exists in local storage, retrieve it back to the service
|
|
18
|
+
if (localStorage.getItem(this._lsKey)) {
|
|
19
|
+
this.token = localStorage.getItem(this._lsKey);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
reissue(token) {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
if (!token && !this._token) {
|
|
25
|
+
console.log('reject, not logged in');
|
|
26
|
+
reject('NOT_LOGGED_IN');
|
|
27
|
+
}
|
|
28
|
+
if (token)
|
|
29
|
+
this.token = token;
|
|
30
|
+
// check stored token has not expired, or needs to be reissued soon
|
|
31
|
+
var reissueIn = this._decoded.exp - Math.floor(Date.now() / 1000);
|
|
32
|
+
// token has expired
|
|
33
|
+
if (reissueIn < 0) {
|
|
34
|
+
reject('NOT_LOGGED_IN');
|
|
35
|
+
}
|
|
36
|
+
// token expiring soon
|
|
37
|
+
if (reissueIn < 300) {
|
|
38
|
+
console.log('expires less than 300');
|
|
39
|
+
// to-do: call Apollo here
|
|
40
|
+
this.http.post(this.config.apiProtocol + this.config.api + '/token/' + this._token, {}).subscribe((response) => {
|
|
41
|
+
console.log('reissue response');
|
|
42
|
+
console.log(response);
|
|
43
|
+
if (response.token) {
|
|
44
|
+
this.token = response.token;
|
|
45
|
+
resolve(this._token);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
reject('NOT_LOGGED_IN');
|
|
49
|
+
}
|
|
50
|
+
}, error => {
|
|
51
|
+
reject('NOT_LOGGED_IN');
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log('token ok');
|
|
56
|
+
resolve(this._token);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
set token(token) {
|
|
61
|
+
this._token = token;
|
|
62
|
+
localStorage.setItem(this._lsKey, token);
|
|
63
|
+
this._decoded = this.jwtService.decodeToken(this._token);
|
|
64
|
+
}
|
|
65
|
+
get profile() {
|
|
66
|
+
return this._decoded;
|
|
67
|
+
}
|
|
68
|
+
get admin() {
|
|
69
|
+
return this.profile.permission == 1;
|
|
70
|
+
}
|
|
71
|
+
logout() {
|
|
72
|
+
return new Promise((resolve, reject) => {
|
|
73
|
+
this.http.get(this.config.apiProtocol + this.config.api + '/token/' + this._token + '/delete', { responseType: 'text' }).subscribe((response) => {
|
|
74
|
+
this._token = null;
|
|
75
|
+
localStorage.removeItem(this._lsKey);
|
|
76
|
+
resolve(this.config.login);
|
|
77
|
+
//this.router.stateService.go('dashboard')
|
|
78
|
+
}, error => {
|
|
79
|
+
reject(this.config.login);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
MembrsService.ctorParameters = () => [
|
|
85
|
+
{ type: JwtHelperService },
|
|
86
|
+
{ type: HttpClient },
|
|
87
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MembrsConfigService,] }] }
|
|
88
|
+
];
|
|
89
|
+
MembrsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MembrsService_Factory() { return new MembrsService(i0.ɵɵinject(i1.JwtHelperService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.MembrsConfigService)); }, token: MembrsService, providedIn: "root" });
|
|
90
|
+
MembrsService = __decorate([
|
|
91
|
+
Injectable({
|
|
92
|
+
providedIn: 'root'
|
|
93
|
+
}),
|
|
94
|
+
__param(2, Inject(MembrsConfigService)),
|
|
95
|
+
__metadata("design:paramtypes", [JwtHelperService, HttpClient, Object])
|
|
96
|
+
], MembrsService);
|
|
97
|
+
export { MembrsService };
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYnJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmFrZWRjcmVhdGl2aXR5L21lbWJycy1hbmd1bGFyLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9tZW1icnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBOzs7OztBQU90RCxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0lBTXhCLFlBQW9CLFVBQTRCLEVBQVUsSUFBZ0IsRUFBdUMsTUFBb0I7UUFBakgsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQXVDLFdBQU0sR0FBTixNQUFNLENBQWM7UUFGN0gsV0FBTSxHQUFXLFFBQVEsQ0FBQztRQUloQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7UUFDakMsd0VBQXdFO1FBQ3hFLElBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUMvQztJQUVILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUVuQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBQyxFQUFFO1lBRXBDLElBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7Z0JBQ3BD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QUM1QyxDQUFDLEVBQUUsS0FBSyxDQUFBLEVBQUU7Z0JBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDM0IsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUVKLENBQUM7Q0FHRixDQUFBOztZQXhGaUMsZ0JBQWdCO1lBQWdCLFVBQVU7NENBQUcsTUFBTSxTQUFDLG1CQUFtQjs7O0FBTjVGLGFBQWE7SUFKekIsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztJQVE2RSxXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO3FDQUF4RSxnQkFBZ0IsRUFBZ0IsVUFBVTtHQU4vRCxhQUFhLENBOEZ6QjtTQTlGWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IE1lbWJyc0NvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgTWVtYnJzQ29uZmlnIH0gZnJvbSAnLi9jb25maWcuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBNZW1icnNTZXJ2aWNlIHtcblxuICBwcml2YXRlIF90b2tlbjogc3RyaW5nO1xuICBwcml2YXRlIF9kZWNvZGVkOiBhbnk7XG4gIHByaXZhdGUgX2xzS2V5OiBzdHJpbmcgPSAnbWVtYnJzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dFNlcnZpY2U6IEp3dEhlbHBlclNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgQEluamVjdChNZW1icnNDb25maWdTZXJ2aWNlKSBwcml2YXRlIGNvbmZpZzogTWVtYnJzQ29uZmlnKSB7XG5cbiAgICBjb25zb2xlLmxvZygnbWVtYnJzIGNvbnN0cnVjdG9yJylcbiAgICAvLyBpZiB0aGUgdG9rZW4gZXhpc3RzIGluIGxvY2FsIHN0b3JhZ2UsIHJldHJpZXZlIGl0IGJhY2sgdG8gdGhlIHNlcnZpY2VcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLl9sc0tleSkpe1xuICAgICAgdGhpcy50b2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2xzS2V5KVxuICAgIH1cbiAgXG4gIH1cblxuICByZWlzc3VlKHRva2VuPzpzdHJpbmcpe1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG5cbiAgICAgIGlmKCF0b2tlbiAmJiAhdGhpcy5fdG9rZW4pe1xuICAgICAgICBjb25zb2xlLmxvZygncmVqZWN0LCBub3QgbG9nZ2VkIGluJylcbiAgICAgICAgcmVqZWN0KCdOT1RfTE9HR0VEX0lOJylcbiAgICAgIH1cblxuICAgICAgaWYodG9rZW4pXG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlblxuXG4gICAgICAvLyBjaGVjayBzdG9yZWQgdG9rZW4gaGFzIG5vdCBleHBpcmVkLCBvciBuZWVkcyB0byBiZSByZWlzc3VlZCBzb29uXG4gICAgICB2YXIgcmVpc3N1ZUluID0gdGhpcy5fZGVjb2RlZC5leHAgLSBNYXRoLmZsb29yKERhdGUubm93KCkvMTAwMClcbiAgICBcbiAgICAgIC8vIHRva2VuIGhhcyBleHBpcmVkXG4gICAgICBpZihyZWlzc3VlSW4gPCAwKXtcbiAgICAgICAgcmVqZWN0KCdOT1RfTE9HR0VEX0lOJylcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gdG9rZW4gZXhwaXJpbmcgc29vblxuICAgICAgaWYocmVpc3N1ZUluIDwgMzAwKXtcbiAgICAgICAgXG4gICAgICAgIGNvbnNvbGUubG9nKCdleHBpcmVzIGxlc3MgdGhhbiAzMDAnKVxuICAgICAgICAvLyB0by1kbzogY2FsbCBBcG9sbG8gaGVyZVxuXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuY29uZmlnLmFwaVByb3RvY29sICsgdGhpcy5jb25maWcuYXBpKycvdG9rZW4vJyt0aGlzLl90b2tlbiwge30pLnN1YnNjcmliZSgocmVzcG9uc2U6YW55KT0+e1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdyZWlzc3VlIHJlc3BvbnNlJylcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSlcbiAgICAgICAgICBpZihyZXNwb25zZS50b2tlbil7XG4gICAgICAgICAgICB0aGlzLnRva2VuID0gcmVzcG9uc2UudG9rZW5cbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fdG9rZW4pXG4gICAgICAgICAgfWVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KCdOT1RfTE9HR0VEX0lOJylcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgIH0sIGVycm9yPT57XG4gICAgICAgICAgcmVqZWN0KCdOT1RfTE9HR0VEX0lOJylcbiAgICAgICAgfSlcblxuICAgICAgfWVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygndG9rZW4gb2snKVxuICAgICAgICByZXNvbHZlKHRoaXMuX3Rva2VuKVxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgICBcbiAgfVxuXG4gIHNldCB0b2tlbih0b2tlbil7XG4gICAgdGhpcy5fdG9rZW4gPSB0b2tlblxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuX2xzS2V5LCB0b2tlbilcbiAgICB0aGlzLl9kZWNvZGVkID0gdGhpcy5qd3RTZXJ2aWNlLmRlY29kZVRva2VuKHRoaXMuX3Rva2VuKVxuICB9XG5cbiAgZ2V0IHByb2ZpbGUoKXtcbiAgICByZXR1cm4gdGhpcy5fZGVjb2RlZFxuICB9XG5cbiAgZ2V0IGFkbWluICgpe1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGUucGVybWlzc2lvbiA9PSAxXG4gIH1cblxuICBsb2dvdXQoKXtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PntcbiAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5jb25maWcuYXBpUHJvdG9jb2wrdGhpcy5jb25maWcuYXBpKycvdG9rZW4vJyt0aGlzLl90b2tlbisnL2RlbGV0ZScsIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pLnN1YnNjcmliZSgocmVzcG9uc2U6YW55KT0+e1xuICAgICAgICB0aGlzLl90b2tlbiA9IG51bGw7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuX2xzS2V5KVxuICAgICAgICByZXNvbHZlKHRoaXMuY29uZmlnLmxvZ2luKVxuICAgICAgICAvL3RoaXMucm91dGVyLnN0YXRlU2VydmljZS5nbygnZGFzaGJvYXJkJylcbiAgICAgIH0sIGVycm9yPT57XG4gICAgICAgIHJlamVjdCh0aGlzLmNvbmZpZy5sb2dpbilcbiAgICAgIH0pXG4gICAgfSlcbiAgICBcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MembrsConfigService } from './config.service';
|
|
2
|
+
import { Injector } from '@angular/core';
|
|
3
|
+
export function routerConfigFn(router, injector) {
|
|
4
|
+
const transitionService = router.transitionService;
|
|
5
|
+
const stateService = router.stateService;
|
|
6
|
+
const config = Injector.call(MembrsConfigService);
|
|
7
|
+
console.log('config in router config fn');
|
|
8
|
+
console.log(config);
|
|
9
|
+
// transitionService.onStart({}, (transition)=>{
|
|
10
|
+
// console.log('start transition')
|
|
11
|
+
// console.log(transition.params())
|
|
12
|
+
// console.log(transition.paramsChanged())
|
|
13
|
+
// })
|
|
14
|
+
stateService.defaultErrorHandler(function (error) {
|
|
15
|
+
// console.log('error')
|
|
16
|
+
// console.log(error)
|
|
17
|
+
console.log('default error handler');
|
|
18
|
+
if (error.detail == 'NOT_LOGGED_IN')
|
|
19
|
+
window.location.href = config.login;
|
|
20
|
+
//console.log(MembrsSettings)
|
|
21
|
+
if (error.detail == 'INSUFFICIENT_PERMISSIONS')
|
|
22
|
+
stateService.go(config.defaultState);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibGliL3JvdXRlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWdCLEVBQUUsUUFBa0I7SUFFakUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQTtJQUd4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFFakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckIsa0RBQWtEO0lBQ2xELHFDQUFxQztJQUNyQyxzQ0FBc0M7SUFDdEMsNkNBQTZDO0lBQzdDLE9BQU87SUFFTCxZQUFZLENBQUMsbUJBQW1CLENBQUMsVUFBUyxLQUFLO1FBRS9DLHVCQUF1QjtRQUN2QixxQkFBcUI7UUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBQ2hDLElBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxlQUFlO1lBQ3JDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDcEMsNkJBQTZCO1FBRTlCLElBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSwwQkFBMEI7WUFDNUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFFdEMsQ0FBQyxDQUFDLENBQUM7QUFFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlSb3V0ZXIgfSBmcm9tICdAdWlyb3V0ZXIvY29yZSc7XG5pbXBvcnQgeyBNZW1icnNDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSdcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcm91dGVyQ29uZmlnRm4ocm91dGVyOiBVSVJvdXRlciwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG5cbiAgY29uc3QgdHJhbnNpdGlvblNlcnZpY2UgPSByb3V0ZXIudHJhbnNpdGlvblNlcnZpY2U7XG4gIGNvbnN0IHN0YXRlU2VydmljZSA9IHJvdXRlci5zdGF0ZVNlcnZpY2VcblxuXG4gIGNvbnN0IGNvbmZpZyA9IEluamVjdG9yLmNhbGwoTWVtYnJzQ29uZmlnU2VydmljZSlcblxuICBjb25zb2xlLmxvZygnY29uZmlnIGluIHJvdXRlciBjb25maWcgZm4nKVxuICBjb25zb2xlLmxvZyhjb25maWcpXG5cbi8vICAgdHJhbnNpdGlvblNlcnZpY2Uub25TdGFydCh7fSwgKHRyYW5zaXRpb24pPT57XG4vLyAgIFx0Y29uc29sZS5sb2coJ3N0YXJ0IHRyYW5zaXRpb24nKVxuLy8gXHQgIGNvbnNvbGUubG9nKHRyYW5zaXRpb24ucGFyYW1zKCkpXG4vLyBcdCAgY29uc29sZS5sb2codHJhbnNpdGlvbi5wYXJhbXNDaGFuZ2VkKCkpXG4vLyAgIH0pXG5cbiBcdHN0YXRlU2VydmljZS5kZWZhdWx0RXJyb3JIYW5kbGVyKGZ1bmN0aW9uKGVycm9yKSB7XG5cdFx0IFxuXHRcdC8vIGNvbnNvbGUubG9nKCdlcnJvcicpXG5cdFx0Ly8gY29uc29sZS5sb2coZXJyb3IpXG5cdFx0Y29uc29sZS5sb2coJ2RlZmF1bHQgZXJyb3IgaGFuZGxlcicpXG4gIFx0ICBcdGlmKGVycm9yLmRldGFpbCA9PSAnTk9UX0xPR0dFRF9JTicpXG5cdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGNvbmZpZy5sb2dpbjtcblx0XHRcdC8vY29uc29sZS5sb2coTWVtYnJzU2V0dGluZ3MpXG5cblx0XHRpZihlcnJvci5kZXRhaWwgPT0gJ0lOU1VGRklDSUVOVF9QRVJNSVNTSU9OUycpXG5cdFx0XHRzdGF0ZVNlcnZpY2UuZ28oY29uZmlnLmRlZmF1bHRTdGF0ZSlcblxuXHR9KTtcblx0XG59Il19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
export { MembrsConfigService as ɵa } from './lib/config.service';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFrZWRjcmVhdGl2aXR5LW1lbWJycy1hbmd1bGFyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibmFrZWRjcmVhdGl2aXR5LW1lbWJycy1hbmd1bGFyLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRzdCLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtNZW1icnNDb25maWcgYXMgybVifSBmcm9tICcuL2xpYi9jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCB7TWVtYnJzQ29uZmlnU2VydmljZSBhcyDJtWF9IGZyb20gJy4vbGliL2NvbmZpZy5zZXJ2aWNlJzsiXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of membrs
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/membrs.service';
|
|
5
|
+
export * from './lib/membrs.module';
|
|
6
|
+
export function retrieveToken() {
|
|
7
|
+
return localStorage.getItem('membrs');
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxNQUFNLFVBQVUsYUFBYTtJQUN6QixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbWVtYnJzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVtYnJzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVtYnJzLm1vZHVsZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXRyaWV2ZVRva2VuKCkge1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVtYnJzJyk7XG59Il19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibGliL2NvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWVtYnJzQ29uZmlnIHtcbiAgICBncmFwaFFMOiBzdHJpbmcsXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgYXBpUHJvdG9jb2w6IHN0cmluZyxcbiAgICBsb2dpbjogc3RyaW5nLFxuICAgIGRlZmF1bHRTdGF0ZTogc3RyaW5nXG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* This is not a real service, but it looks like it from the outside.
|
|
4
|
+
* It's just an InjectionTToken used to import the config object, provided from the outside
|
|
5
|
+
*/
|
|
6
|
+
export var MembrsConfigService = new InjectionToken("MembrsConfig");
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmFrZWRjcmVhdGl2aXR5L21lbWJycy1hbmd1bGFyLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhpcyBpcyBub3QgYSByZWFsIHNlcnZpY2UsIGJ1dCBpdCBsb29rcyBsaWtlIGl0IGZyb20gdGhlIG91dHNpZGUuXG4gKiBJdCdzIGp1c3QgYW4gSW5qZWN0aW9uVFRva2VuIHVzZWQgdG8gaW1wb3J0IHRoZSBjb25maWcgb2JqZWN0LCBwcm92aWRlZCBmcm9tIHRoZSBvdXRzaWRlXG4gKi9cbmV4cG9ydCBjb25zdCBNZW1icnNDb25maWdTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPE1lbWJyc0NvbmZpZz4oXCJNZW1icnNDb25maWdcIik7XG4iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { MembrsService } from './membrs.service';
|
|
5
|
+
import { JwtModule } from "@auth0/angular-jwt";
|
|
6
|
+
import { HttpClientModule } from "@angular/common/http";
|
|
7
|
+
import { UIRouterModule } from '@uirouter/angular';
|
|
8
|
+
import { Transition, UIRouter } from '@uirouter/angular';
|
|
9
|
+
import { routerConfigFn } from './router.config';
|
|
10
|
+
import { MembrsConfigService } from './config.service';
|
|
11
|
+
export var validateResolve = {
|
|
12
|
+
token: 'reissue',
|
|
13
|
+
deps: [Transition, UIRouter, MembrsService],
|
|
14
|
+
resolveFn: validateResolveFn
|
|
15
|
+
};
|
|
16
|
+
export var reissueResolve = {
|
|
17
|
+
token: 'reissue',
|
|
18
|
+
deps: [Transition, UIRouter, MembrsService],
|
|
19
|
+
resolveFn: reissueResolveFn
|
|
20
|
+
};
|
|
21
|
+
export var reissueState = {
|
|
22
|
+
name: 'reissue',
|
|
23
|
+
url: '/reissue?token',
|
|
24
|
+
views: {},
|
|
25
|
+
resolve: [
|
|
26
|
+
reissueResolve
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
export function reissueResolveFn(transition, router, membrsService) {
|
|
30
|
+
//console.log(membrsService)
|
|
31
|
+
return new Promise(function (resolve, reject) {
|
|
32
|
+
console.log('reissue promise resolve');
|
|
33
|
+
console.log(transition.params().token);
|
|
34
|
+
membrsService.reissue(transition.params().token).then(function (response) {
|
|
35
|
+
console.log('redirect to dashboard state');
|
|
36
|
+
router.stateService.go('dashboard', {}, { inherit: false });
|
|
37
|
+
resolve();
|
|
38
|
+
}).catch(function (error) {
|
|
39
|
+
//window.location.href = environment.login
|
|
40
|
+
reject(error);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export function validateResolveFn(transition, router, membrsService) {
|
|
45
|
+
//console.log(membrsService)
|
|
46
|
+
return new Promise(function (resolve, reject) {
|
|
47
|
+
console.log('validate promise resolve');
|
|
48
|
+
membrsService.reissue().then(function (response) {
|
|
49
|
+
resolve();
|
|
50
|
+
}).catch(function (error) {
|
|
51
|
+
//window.location.href = environment.login
|
|
52
|
+
reject(error);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/** The top level state(s) */
|
|
57
|
+
export var STATES = [
|
|
58
|
+
reissueState
|
|
59
|
+
];
|
|
60
|
+
var MembrsModule = /** @class */ (function () {
|
|
61
|
+
function MembrsModule() {
|
|
62
|
+
}
|
|
63
|
+
MembrsModule_1 = MembrsModule;
|
|
64
|
+
MembrsModule.forRoot = function (config) {
|
|
65
|
+
var moduleProviders = JwtModule.forRoot({}).providers;
|
|
66
|
+
moduleProviders.push(UIRouterModule.forChild({
|
|
67
|
+
states: STATES,
|
|
68
|
+
config: routerConfigFn
|
|
69
|
+
}).providers);
|
|
70
|
+
moduleProviders.push(MembrsService);
|
|
71
|
+
moduleProviders.push({ provide: MembrsConfigService, useValue: config });
|
|
72
|
+
return {
|
|
73
|
+
ngModule: MembrsModule_1,
|
|
74
|
+
providers: moduleProviders
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
ngModule: MembrsModule_1,
|
|
78
|
+
providers: [
|
|
79
|
+
MembrsService,
|
|
80
|
+
{
|
|
81
|
+
provide: MembrsConfigService,
|
|
82
|
+
useValue: config
|
|
83
|
+
},
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
var MembrsModule_1;
|
|
88
|
+
MembrsModule = MembrsModule_1 = __decorate([
|
|
89
|
+
NgModule({
|
|
90
|
+
imports: [
|
|
91
|
+
CommonModule,
|
|
92
|
+
HttpClientModule
|
|
93
|
+
// UIRouterModule.forChild({
|
|
94
|
+
// states: STATES,
|
|
95
|
+
// config: routerConfigFn,
|
|
96
|
+
// }),
|
|
97
|
+
// JwtModule.forRoot({})
|
|
98
|
+
]
|
|
99
|
+
})
|
|
100
|
+
], MembrsModule);
|
|
101
|
+
return MembrsModule;
|
|
102
|
+
}());
|
|
103
|
+
export { MembrsModule };
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYnJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuYWtlZGNyZWF0aXZpdHkvbWVtYnJzLWFuZ3VsYXItaGVscGVyLyIsInNvdXJjZXMiOlsibGliL21lbWJycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUdsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUc7SUFDM0IsS0FBSyxFQUFFLFNBQVM7SUFDaEIsSUFBSSxFQUFFLENBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUU7SUFDN0MsU0FBUyxFQUFFLGlCQUFpQjtDQUMvQixDQUFBO0FBRUQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHO0lBQzVCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxDQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFFO0lBQzdDLFNBQVMsRUFBRSxnQkFBZ0I7Q0FDNUIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxJQUFNLFlBQVksR0FBdUI7SUFDL0MsSUFBSSxFQUFFLFNBQVM7SUFDZixHQUFHLEVBQUUsZ0JB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RixDQUFDO09BSVcsWUFBWSxDQThCeEI7SUFBRCxtQkFBQztDQUFBLEFBOUJELElBOEJDO1NBOUJZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZW1icnNTZXJ2aWNlIH0gZnJvbSAnLi9tZW1icnMuc2VydmljZSc7XG5pbXBvcnQgeyBKd3RNb2R1bGUgfSBmcm9tIFwiQGF1dGgwL2FuZ3VsYXItand0XCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBVSVJvdXRlck1vZHVsZSB9IGZyb20gJ0B1aXJvdXRlci9hbmd1bGFyJ1xuXG5pbXBvcnQgeyBOZzJTdGF0ZURlY2xhcmF0aW9uIH0gZnJvbSAnQHVpcm91dGVyL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNpdGlvbiwgVUlSb3V0ZXIgfSBmcm9tICdAdWlyb3V0ZXIvYW5ndWxhcidcblxuaW1wb3J0IHsgcm91dGVyQ29uZmlnRm4gfSBmcm9tICcuL3JvdXRlci5jb25maWcnO1xuaW1wb3J0IHsgTWVtYnJzQ29uZmlnIH0gZnJvbSAnLi9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlUmVzb2x2ZSA9IHtcbiAgICB0b2tlbjogJ3JlaXNzdWUnLFxuICAgIGRlcHM6IFsgVHJhbnNpdGlvbiwgVUlSb3V0ZXIsIE1lbWJyc1NlcnZpY2UgXSxcbiAgICByZXNvbHZlRm46IHZhbGlkYXRlUmVzb2x2ZUZuXG59XG5cbmV4cG9ydCBjb25zdCByZWlzc3VlUmVzb2x2ZSA9IHtcbiAgdG9rZW46ICdyZWlzc3VlJyxcbiAgZGVwczogWyBUcmFuc2l0aW9uLCBVSVJvdXRlciwgTWVtYnJzU2VydmljZSBdLFxuICByZXNvbHZlRm46IHJlaXNzdWVSZXNvbHZlRm5cbn1cblxuZXhwb3J0IGNvbnN0IHJlaXNzdWVTdGF0ZTpOZzJTdGF0ZURlY2xhcmF0aW9uID0ge1xuXHRuYW1lOiAncmVpc3N1ZScsIFxuXHR1cmw6ICcvcmVpc3N1ZT90b2tlbicsXG5cdHZpZXdzOiB7IH0sXG5cdHJlc29sdmU6IFtcbiAgICByZWlzc3VlUmVzb2x2ZVxuXHRdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWlzc3VlUmVzb2x2ZUZuKHRyYW5zaXRpb24sIHJvdXRlciwgbWVtYnJzU2VydmljZSkge1xuICAgIFxuICAgIC8vY29uc29sZS5sb2cobWVtYnJzU2VydmljZSlcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ3JlaXNzdWUgcHJvbWlzZSByZXNvbHZlJylcbiAgICAgIGNvbnNvbGUubG9nKHRyYW5zaXRpb24ucGFyYW1zKCkudG9rZW4pXG4gICAgICBtZW1icnNTZXJ2aWNlLnJlaXNzdWUodHJhbnNpdGlvbi5wYXJhbXMoKS50b2tlbikudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgICAgY29uc29sZS5sb2coJ3JlZGlyZWN0IHRvIGRhc2hib2FyZCBzdGF0ZScpXG4gICAgICAgICAgcm91dGVyLnN0YXRlU2VydmljZS5nbygnZGFzaGJvYXJkJyx7fSwge2luaGVyaXQ6ZmFsc2V9KVxuICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgfSkuY2F0Y2goZXJyb3I9PntcbiAgICAgICAgICAvL3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gZW52aXJvbm1lbnQubG9naW5cbiAgICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9KVxuXG5cdH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJlc29sdmVGbih0cmFuc2l0aW9uLCByb3V0ZXIsIG1lbWJyc1NlcnZpY2UpIHtcbiAgXG4gIC8vY29uc29sZS5sb2cobWVtYnJzU2VydmljZSlcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zb2xlLmxvZygndmFsaWRhdGUgcHJvbWlzZSByZXNvbHZlJylcbiAgICBcbiAgICBtZW1icnNTZXJ2aWNlLnJlaXNzdWUoKS50aGVuKChyZXNwb25zZSk9PntcbiAgICAgICAgcmVzb2x2ZSgpXG4gICAgfSkuY2F0Y2goZXJyb3I9PntcbiAgICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZiA9IGVudmlyb25tZW50LmxvZ2luXG4gICAgICAgIHJlamVjdChlcnJvcilcbiAgICB9KVxuXG59KVxufVxuXG5cbi8qKiBUaGUgdG9wIGxldmVsIHN0YXRlKHMpICovXG5leHBvcnQgY29uc3QgU1RBVEVTID0gW1xuICAgIHJlaXNzdWVTdGF0ZVxuXVxuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZVxuICAgIC8vIFVJUm91dGVyTW9kdWxlLmZvckNoaWxkKHtcbiAgICAvLyAgIHN0YXRlczogU1RBVEVTLFxuICAgIC8vICAgY29uZmlnOiByb3V0ZXJDb25maWdGbixcbiAgICAvLyB9KSxcbiAgICAvLyBKd3RNb2R1bGUuZm9yUm9vdCh7fSlcbiAgXVxufSlcblxuXG5cbmV4cG9ydCBjbGFzcyBNZW1icnNNb2R1bGUgeyBcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBNZW1icnNDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1lbWJyc01vZHVsZT4ge1xuXG5cbiAgICBjb25zdCBtb2R1bGVQcm92aWRlcnMgPSBKd3RNb2R1bGUuZm9yUm9vdCh7fSkucHJvdmlkZXJzO1xuICAgIG1vZHVsZVByb3ZpZGVycy5wdXNoKFVJUm91dGVyTW9kdWxlLmZvckNoaWxkKHtcbiAgICAgICAgc3RhdGVzOiBTVEFURVMsXG4gICAgICAgIGNvbmZpZzogcm91dGVyQ29uZmlnRm5cbiAgICAgIH0pLnByb3ZpZGVycylcbiAgICAgIFxuICAgIG1vZHVsZVByb3ZpZGVycy5wdXNoKE1lbWJyc1NlcnZpY2UpXG4gICAgbW9kdWxlUHJvdmlkZXJzLnB1c2goe3Byb3ZpZGU6IE1lbWJyc0NvbmZpZ1NlcnZpY2UsdXNlVmFsdWU6IGNvbmZpZ30pO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWVtYnJzTW9kdWxlLCBcbiAgICAgIHByb3ZpZGVyczogbW9kdWxlUHJvdmlkZXJzXG4gICAgfTtcblxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBNZW1icnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTWVtYnJzU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE1lbWJyc0NvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICB9LFxuICAgICAgXVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { __decorate, __metadata, __param } from "tslib";
|
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
|
3
|
+
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
4
|
+
import { HttpClient } from '@angular/common/http';
|
|
5
|
+
import { MembrsConfigService } from './config.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@auth0/angular-jwt";
|
|
8
|
+
import * as i2 from "@angular/common/http";
|
|
9
|
+
import * as i3 from "./config.service";
|
|
10
|
+
var MembrsService = /** @class */ (function () {
|
|
11
|
+
function MembrsService(jwtService, http, config) {
|
|
12
|
+
this.jwtService = jwtService;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.config = config;
|
|
15
|
+
this._lsKey = 'membrs';
|
|
16
|
+
console.log('membrs constructor');
|
|
17
|
+
// if the token exists in local storage, retrieve it back to the service
|
|
18
|
+
if (localStorage.getItem(this._lsKey)) {
|
|
19
|
+
this.token = localStorage.getItem(this._lsKey);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
MembrsService.prototype.reissue = function (token) {
|
|
23
|
+
var _this = this;
|
|
24
|
+
return new Promise(function (resolve, reject) {
|
|
25
|
+
if (!token && !_this._token) {
|
|
26
|
+
console.log('reject, not logged in');
|
|
27
|
+
reject('NOT_LOGGED_IN');
|
|
28
|
+
}
|
|
29
|
+
if (token)
|
|
30
|
+
_this.token = token;
|
|
31
|
+
// check stored token has not expired, or needs to be reissued soon
|
|
32
|
+
var reissueIn = _this._decoded.exp - Math.floor(Date.now() / 1000);
|
|
33
|
+
// token has expired
|
|
34
|
+
if (reissueIn < 0) {
|
|
35
|
+
reject('NOT_LOGGED_IN');
|
|
36
|
+
}
|
|
37
|
+
// token expiring soon
|
|
38
|
+
if (reissueIn < 300) {
|
|
39
|
+
console.log('expires less than 300');
|
|
40
|
+
// to-do: call Apollo here
|
|
41
|
+
_this.http.post(_this.config.apiProtocol + _this.config.api + '/token/' + _this._token, {}).subscribe(function (response) {
|
|
42
|
+
console.log('reissue response');
|
|
43
|
+
console.log(response);
|
|
44
|
+
if (response.token) {
|
|
45
|
+
_this.token = response.token;
|
|
46
|
+
resolve(_this._token);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
reject('NOT_LOGGED_IN');
|
|
50
|
+
}
|
|
51
|
+
}, function (error) {
|
|
52
|
+
reject('NOT_LOGGED_IN');
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log('token ok');
|
|
57
|
+
resolve(_this._token);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
Object.defineProperty(MembrsService.prototype, "token", {
|
|
62
|
+
set: function (token) {
|
|
63
|
+
this._token = token;
|
|
64
|
+
localStorage.setItem(this._lsKey, token);
|
|
65
|
+
this._decoded = this.jwtService.decodeToken(this._token);
|
|
66
|
+
},
|
|
67
|
+
enumerable: true,
|
|
68
|
+
configurable: true
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(MembrsService.prototype, "profile", {
|
|
71
|
+
get: function () {
|
|
72
|
+
return this._decoded;
|
|
73
|
+
},
|
|
74
|
+
enumerable: true,
|
|
75
|
+
configurable: true
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(MembrsService.prototype, "admin", {
|
|
78
|
+
get: function () {
|
|
79
|
+
return this.profile.permission == 1;
|
|
80
|
+
},
|
|
81
|
+
enumerable: true,
|
|
82
|
+
configurable: true
|
|
83
|
+
});
|
|
84
|
+
MembrsService.prototype.logout = function () {
|
|
85
|
+
var _this = this;
|
|
86
|
+
return new Promise(function (resolve, reject) {
|
|
87
|
+
_this.http.get(_this.config.apiProtocol + _this.config.api + '/token/' + _this._token + '/delete', { responseType: 'text' }).subscribe(function (response) {
|
|
88
|
+
_this._token = null;
|
|
89
|
+
localStorage.removeItem(_this._lsKey);
|
|
90
|
+
resolve(_this.config.login);
|
|
91
|
+
//this.router.stateService.go('dashboard')
|
|
92
|
+
}, function (error) {
|
|
93
|
+
reject(_this.config.login);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
MembrsService.ctorParameters = function () { return [
|
|
98
|
+
{ type: JwtHelperService },
|
|
99
|
+
{ type: HttpClient },
|
|
100
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MembrsConfigService,] }] }
|
|
101
|
+
]; };
|
|
102
|
+
MembrsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MembrsService_Factory() { return new MembrsService(i0.ɵɵinject(i1.JwtHelperService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.MembrsConfigService)); }, token: MembrsService, providedIn: "root" });
|
|
103
|
+
MembrsService = __decorate([
|
|
104
|
+
Injectable({
|
|
105
|
+
providedIn: 'root'
|
|
106
|
+
}),
|
|
107
|
+
__param(2, Inject(MembrsConfigService)),
|
|
108
|
+
__metadata("design:paramtypes", [JwtHelperService, HttpClient, Object])
|
|
109
|
+
], MembrsService);
|
|
110
|
+
return MembrsService;
|
|
111
|
+
}());
|
|
112
|
+
export { MembrsService };
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYnJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmFrZWRjcmVhdGl2aXR5L21lbWJycy1hbmd1bGFyLWhlbHBlci8iLCJzb3VyY2VzIjpbImxpYi9tZW1icnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBOzs7OztBQU90RDtJQU1FLHVCQUFvQixVQUE0QixFQUFVLElBQWdCLEVBQXVDLE1BQW9CO1FBQWpILGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUF1QyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRjdILFdBQU0sR0FBVyxRQUFRLENBQUM7UUFJaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQ2pDLHdFQUF3RTtRQUN4RSxJQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDL0M7SUFFSCxDQUFDO0lBRUQsK0JBQU8sR0FBUCxVQUFRLEtBQWE7UUFBckIsaUJBK0NDO1FBN0NDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtZQUVqQyxJQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSSxDQUFDLE1BQU0sRUFBQztnQkFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO2dCQUNwQyxNQUFNLENBQUMsZUFBZSxD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Q0FBMEM7WUFDNUMsQ0FBQyxFQUFFLFVBQUEsS0FBSztnQkFDTixNQUFNLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMzQixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQzs7Z0JBckYrQixnQkFBZ0I7Z0JBQWdCLFVBQVU7Z0RBQUcsTUFBTSxTQUFDLG1CQUFtQjs7O0lBTjVGLGFBQWE7UUFKekIsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztRQVE2RSxXQUFBLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO3lDQUF4RSxnQkFBZ0IsRUFBZ0IsVUFBVTtPQU4vRCxhQUFhLENBOEZ6Qjt3QkF4R0Q7Q0F3R0MsQUE5RkQsSUE4RkM7U0E5RlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gJ0BhdXRoMC9hbmd1bGFyLWp3dCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBNZW1icnNDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSdcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuXG5leHBvcnQgY2xhc3MgTWVtYnJzU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfdG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSBfZGVjb2RlZDogYW55O1xuICBwcml2YXRlIF9sc0tleTogc3RyaW5nID0gJ21lbWJycyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBqd3RTZXJ2aWNlOiBKd3RIZWxwZXJTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIEBJbmplY3QoTWVtYnJzQ29uZmlnU2VydmljZSkgcHJpdmF0ZSBjb25maWc6IE1lbWJyc0NvbmZpZykge1xuXG4gICAgY29uc29sZS5sb2coJ21lbWJycyBjb25zdHJ1Y3RvcicpXG4gICAgLy8gaWYgdGhlIHRva2VuIGV4aXN0cyBpbiBsb2NhbCBzdG9yYWdlLCByZXRyaWV2ZSBpdCBiYWNrIHRvIHRoZSBzZXJ2aWNlXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5fbHNLZXkpKXtcbiAgICAgIHRoaXMudG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLl9sc0tleSlcbiAgICB9XG4gIFxuICB9XG5cbiAgcmVpc3N1ZSh0b2tlbj86c3RyaW5nKXtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KT0+e1xuXG4gICAgICBpZighdG9rZW4gJiYgIXRoaXMuX3Rva2VuKXtcbiAgICAgICAgY29uc29sZS5sb2coJ3JlamVjdCwgbm90IGxvZ2dlZCBpbicpXG4gICAgICAgIHJlamVjdCgnTk9UX0xPR0dFRF9JTicpXG4gICAgICB9XG5cbiAgICAgIGlmKHRva2VuKVxuICAgICAgICB0aGlzLnRva2VuID0gdG9rZW5cblxuICAgICAgLy8gY2hlY2sgc3RvcmVkIHRva2VuIGhhcyBub3QgZXhwaXJlZCwgb3IgbmVlZHMgdG8gYmUgcmVpc3N1ZWQgc29vblxuICAgICAgdmFyIHJlaXNzdWVJbiA9IHRoaXMuX2RlY29kZWQuZXhwIC0gTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDApXG4gICAgXG4gICAgICAvLyB0b2tlbiBoYXMgZXhwaXJlZFxuICAgICAgaWYocmVpc3N1ZUluIDwgMCl7XG4gICAgICAgIHJlamVjdCgnTk9UX0xPR0dFRF9JTicpXG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIHRva2VuIGV4cGlyaW5nIHNvb25cbiAgICAgIGlmKHJlaXNzdWVJbiA8IDMwMCl7XG4gICAgICAgIFxuICAgICAgICBjb25zb2xlLmxvZygnZXhwaXJlcyBsZXNzIHRoYW4gMzAwJylcbiAgICAgICAgLy8gdG8tZG86IGNhbGwgQXBvbGxvIGhlcmVcblxuICAgICAgICB0aGlzLmh0dHAucG9zdCh0aGlzLmNvbmZpZy5hcGlQcm90b2NvbCArIHRoaXMuY29uZmlnLmFwaSsnL3Rva2VuLycrdGhpcy5fdG9rZW4sIHt9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOmFueSk9PntcbiAgICAgICAgICBjb25zb2xlLmxvZygncmVpc3N1ZSByZXNwb25zZScpXG4gICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpXG4gICAgICAgICAgaWYocmVzcG9uc2UudG9rZW4pe1xuICAgICAgICAgICAgdGhpcy50b2tlbiA9IHJlc3BvbnNlLnRva2VuXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX3Rva2VuKVxuICAgICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIHJlamVjdCgnTk9UX0xPR0dFRF9JTicpXG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICB9LCBlcnJvcj0+e1xuICAgICAgICAgIHJlamVjdCgnTk9UX0xPR0dFRF9JTicpXG4gICAgICAgIH0pXG5cbiAgICAgIH1lbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3Rva2VuIG9rJylcbiAgICAgICAgcmVzb2x2ZSh0aGlzLl90b2tlbilcbiAgICAgIH1cbiAgICAgIFxuICAgIH0pXG4gICAgXG4gIH1cblxuICBzZXQgdG9rZW4odG9rZW4pe1xuICAgIHRoaXMuX3Rva2VuID0gdG9rZW5cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLl9sc0tleSwgdG9rZW4pXG4gICAgdGhpcy5fZGVjb2RlZCA9IHRoaXMuand0U2VydmljZS5kZWNvZGVUb2tlbih0aGlzLl90b2tlbilcbiAgfVxuXG4gIGdldCBwcm9maWxlKCl7XG4gICAgcmV0dXJuIHRoaXMuX2RlY29kZWRcbiAgfVxuXG4gIGdldCBhZG1pbiAoKXtcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlLnBlcm1pc3Npb24gPT0gMVxuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57XG4gICAgICB0aGlzLmh0dHAuZ2V0KHRoaXMuY29uZmlnLmFwaVByb3RvY29sK3RoaXMuY29uZmlnLmFwaSsnL3Rva2VuLycrdGhpcy5fdG9rZW4rJy9kZWxldGUnLCB7cmVzcG9uc2VUeXBlOiAndGV4dCd9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOmFueSk9PntcbiAgICAgICAgdGhpcy5fdG9rZW4gPSBudWxsO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLl9sc0tleSlcbiAgICAgICAgcmVzb2x2ZSh0aGlzLmNvbmZpZy5sb2dpbilcbiAgICAgICAgLy90aGlzLnJvdXRlci5zdGF0ZVNlcnZpY2UuZ28oJ2Rhc2hib2FyZCcpXG4gICAgICB9LCBlcnJvcj0+e1xuICAgICAgICByZWplY3QodGhpcy5jb25maWcubG9naW4pXG4gICAgICB9KVxuICAgIH0pXG4gICAgXG4gIH1cblxuXG59XG4iXX0=
|