Browse Source

feat: replace oAuth issuer

pull/4956/head
mehmet-erim 6 years ago
parent
commit
b29460fcdc
  1. 2
      npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts
  2. 28
      npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts
  3. 3
      npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts
  4. 3
      npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts
  5. 82
      npm/ng-packs/yarn.lock

2
npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

@ -37,7 +37,7 @@ export function getInitialData(injector: Injector) {
return fn;
}
function checkAccessToken(store: Store, injector: Injector) {
export function checkAccessToken(store: Store, injector: Injector) {
const oAuth = injector.get(OAuthService);
if (oAuth.hasValidAccessToken() && !store.selectSnapshot(ConfigState.getDeep('currentUser.id'))) {
oAuth.logOut();

28
npm/ng-packs/packages/core/src/lib/utils/multi-tenancy-utils.ts

@ -1,22 +1,23 @@
import { Injector } from '@angular/core';
import { Store } from '@ngxs/store';
import { ConfigState } from '../states/config.state';
import { switchMap, tap } from 'rxjs/operators';
import { SetEnvironment } from '../actions';
import { Config } from '../models/config';
import { FormattedStringValueExtractor } from './formatted-string-value-extractor';
import { MultiTenancyService } from '../services/multi-tenancy.service';
import { tap, switchMap } from 'rxjs/operators';
import { SetTenant, SetEnvironment } from '../actions';
import { of } from 'rxjs';
import { ConfigState } from '../states/config.state';
import { FormattedStringValueExtractor } from './formatted-string-value-extractor';
const tenancyPlaceholder = '{TENANCY_NAME}';
export function getCurrentTenancyNameOrNull(appBaseUrl: string): string {
if (appBaseUrl.indexOf(tenancyPlaceholder) < 0) return null;
const currentRootAddress = document.location.href;
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/') appBaseUrl += '/';
const currentRootAddress = window.location.href;
const formattedStringValueExtracter = new FormattedStringValueExtractor();
const values: any[] = formattedStringValueExtracter.isMatch(currentRootAddress, appBaseUrl);
const formattedStringValueExtractor = new FormattedStringValueExtractor();
const values = formattedStringValueExtractor.isMatch(currentRootAddress, appBaseUrl);
if (!values.length) {
return null;
}
@ -39,9 +40,9 @@ export async function parseTenantFromUrl(injector: Injector) {
.pipe(
switchMap(() => multiTenancyService.findTenantByName(tenancyName, { __tenant: '' })),
tap(res => {
if (!res.success) return;
const tenant = { id: res.tenantId, name: res.name };
multiTenancyService.domainTenant = tenant;
multiTenancyService.domainTenant = res.success
? { id: res.tenantId, name: res.name }
: null;
}),
)
.toPromise();
@ -60,6 +61,11 @@ export function setEnvironment(store: Store, tenancyName: string) {
);
}
environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(
tenancyPlaceholder,
tenancyName,
);
Object.keys(environment.apis).forEach(api => {
Object.keys(environment.apis[api]).forEach(key => {
environment.apis[api][key] = environment.apis[api][key].replace(

3
npm/ng-packs/packages/theme-shared/extensions/src/tests/state.util.spec.ts

@ -13,6 +13,7 @@ import {
getObjectExtensionEntitiesFromStore,
mapEntitiesToContributors,
} from '../lib/utils/state.util';
import { OAuthService } from 'angular-oauth2-oidc';
describe('State Utils', () => {
let spectator: SpectatorService<Store>;
@ -21,7 +22,7 @@ describe('State Utils', () => {
const createService = createServiceFactory({
service: Store,
imports: [NgxsModule.forRoot([ConfigState])],
mocks: [HttpClient],
mocks: [HttpClient, OAuthService],
});
beforeEach(() => {

3
npm/ng-packs/packages/theme-shared/src/lib/tests/validation-utils.spec.ts

@ -6,6 +6,7 @@ import { NgxsModule, Store } from '@ngxs/store';
import { HttpClient } from '@angular/common/http';
import { getPasswordValidators } from '../utils';
import { Validators } from '@angular/forms';
import { OAuthService } from 'angular-oauth2-oidc';
@Component({ template: '', selector: 'abp-dummy' })
class DummyComponent {}
@ -15,7 +16,7 @@ describe('ValidationUtils', () => {
const createComponent = createComponentFactory({
component: DummyComponent,
imports: [NgxsModule.forRoot([ConfigState]), NgxValidateCoreModule.forRoot()],
mocks: [HttpClient],
mocks: [HttpClient, OAuthService],
});
beforeEach(() => (spectator = createComponent()));

82
npm/ng-packs/yarn.lock

@ -280,9 +280,9 @@
rxjs "6.4.0"
"@angular/animations@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.0.5.tgz#41c1419f5233cf8adc2139461a552969e1f938c1"
integrity sha512-vHWn7NJiiDAok36GSBJ0y/nqjd4UFl9WGIEsvydUqnyBJ0scuqJa+hADrWwqkK7b/xVW9ARVG00NXmemEPUVGA==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-10.0.6.tgz#ab1d7dd5c7a76da2528a705f5186733763eee545"
integrity sha512-D2cDrfwnVjL0/6m1v35mAYebH2z0I3WJXohhePaDHEKBEXfXpBIbqqSiRpV9jLSa/xgmJPh4FSNVDCmKmuEmfg==
dependencies:
tslib "^2.0.0"
@ -320,9 +320,9 @@
uuid "8.1.0"
"@angular/common@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.0.5.tgz#f1c1b8671dbacc263d5d4f63606a82bc968644ff"
integrity sha512-AKmD/X13q3zzo5uTV/M4dWpAqJ136187rL4VweRc6b5t/oZ3VGcejjElZebgtoyGTye8luIP6fZ/LMb580lBlQ==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/common/-/common-10.0.6.tgz#c279d771eef1e623bd8336c70c3ee821bbebbdd4"
integrity sha512-xS9IJGg6s+Y3K7pe9Oz39Dnpq5uSuUj3HkLKt1db5vPPAeT1qdZ+rdH5hnGwbf8Ihd6ZQacTAlh9W6MnqorZ0w==
dependencies:
tslib "^2.0.0"
@ -353,28 +353,28 @@
tslib "^2.0.0"
"@angular/core@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.0.5.tgz#52a11d1b6ce065f6c26d919ab3bea233f51902be"
integrity sha512-zoIxIi/UaRImeC1uD+eIKrdcihvQR/zfbqKgK67IPy/tghijxge1Tbl8FWIAT0ncAj0XH/JHsWnVdUV/TUI+CA==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/core/-/core-10.0.6.tgz#91feaa070a65db22cf8eb65523351b653ce80d2a"
integrity sha512-mk/7XmZg7EeWEgl2UEyhyU6eukm2h+Thw1Ue84aBxMDaqt1RUpsPwpGCfIRfzH9gdzAjJUAPxiHAN2CF+3Wohw==
dependencies:
tslib "^2.0.0"
"@angular/forms@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.0.5.tgz#c1e3d7218770e56ab0060b28dbf33d76a481a1c5"
integrity sha512-Bv+KEPjqd+ndl/Z0w1uWsBmvb8Je1JObHRjbKAcW7c4r1CVobm+QJv6r6MDL+FOs78lnrm8baekGLQyHH1uO7g==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-10.0.6.tgz#5c98f7ef95f716986968a51946a7b1b9e6e36d40"
integrity sha512-C/+o4lLqyE2QX1brNBxf5yqBPxNpfRA8Rv0Nb1nQE0T6Y/AjyQWxYYl34fD6zk1WQfP3X8bUgkbhHhefmjVZKw==
dependencies:
tslib "^2.0.0"
"@angular/language-service@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-10.0.5.tgz#2e4b24f7440257d3038ad717b19c5c0065684937"
integrity sha512-WJz5+XxOb0ORUERwNEUsX+0L7V4Tm7tz6i/mKAcz5SbE5eVfi+ywT+Zg7xMVRhyEpwDycqLXHK4piBOuGIjk+g==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-10.0.6.tgz#d76e8f1850e521f716c15755b869ea4e49b8c59d"
integrity sha512-Aaee3kjmIPnTQJZL1+eBgkP+bnNh9zj6F78WEoYX7lHt98uRBfv3C9Wl+S4Gewoe99d7BZ53JdthsKY+ejCSIA==
"@angular/localize@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-10.0.5.tgz#cc51976e0ad3cdd05df0ce8448b85d1f2b9ff492"
integrity sha512-iyZ58H7+WBm9J1K2OLKgFFHno33KOu1FMQKaGdj/XCZaG1PphanOUivNxvxXo/6r71UW6uX/U17Rk//F8M0zPA==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-10.0.6.tgz#da109c374da8576fe48ab13d3487bf33be65c03f"
integrity sha512-wcdPphTnBisN6kE37lilt4U7yJKKoM8NKz7hpSq8KTBvf0LN4AfYDzkIJbuapKeolQavblIKgAwkXzsjBhBa2A==
dependencies:
"@babel/core" "7.8.3"
glob "7.1.2"
@ -390,23 +390,23 @@
yargs "15.3.0"
"@angular/platform-browser-dynamic@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.5.tgz#bf0e6af90677e08c38747b1d1b9bacb2463872e0"
integrity sha512-Qa6RM9aJuuw5E7BeGBG9/kCOtssI6Wyzbb/8awzZFF6Fjqom1kef185nwx7SgQs2cdrhqRAgjt0eDJqTfSVb+Q==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.6.tgz#664424e27a38dc599bf6003284ca3938f1450b32"
integrity sha512-ao6i9mEy314SI9Z57JPyKvb4sF61i2RNKHN/XuTpPBIRJ8ryOhG6aS1kN2gNFfj8HmyxZS0zohxTxd+nGitGgw==
dependencies:
tslib "^2.0.0"
"@angular/platform-browser@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.0.5.tgz#0b90263a3858385cfb3ab440358d19eb9e8e91d3"
integrity sha512-bmknyK18yMv+iLCqcrfcpq3/2Ls9mRA1lOe7YhSGpHxM969Rb6Av8vJNW+uv0y7+gTvxacmpiQO8iryr/xvzRg==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-10.0.6.tgz#1a48add3a697105ea5f1bc1e72bb6336c4832dbf"
integrity sha512-i3jqfXK6ZNwCJbCadeUC+ZAGvXZ0/k7/LocxKACFQW4a5o1W8aACn8COYDvdKMsT1B+tM9Wv1nDh3qjPZthaXw==
dependencies:
tslib "^2.0.0"
"@angular/router@~10.0.0":
version "10.0.5"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.0.5.tgz#3e5f8be439b827b1d7bc980d673dec216a2f0769"
integrity sha512-hUGffVOjkdaN5IN9fSipm5ED+XGyfc9yOr5hYr/6YA3H4xaQzXZGlzrrDhAVltTyYalD2LJeXhzlvp59lXgcjg==
version "10.0.6"
resolved "https://registry.yarnpkg.com/@angular/router/-/router-10.0.6.tgz#c1e7a6b6a5472baa345fea8f472e9e9a7ef20c3c"
integrity sha512-+5c/1KitUeMHd7FPAKJ25aloouFHEjlPe5KKGJFtkuzZ7SOi3zwF3ASR52ysnGs/YymdBakIY8kg1Do00xn2wA==
dependencies:
tslib "^2.0.0"
@ -2735,9 +2735,9 @@
integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=
"@types/node@*", "@types/node@>= 8":
version "14.0.26"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.26.tgz#22a3b8a46510da8944b67bfc27df02c34a35331c"
integrity sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA==
version "14.0.27"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1"
integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==
"@types/node@^12.11.1":
version "12.12.53"
@ -5680,9 +5680,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.488:
version "1.3.510"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.510.tgz#dee781ff8b595c0deb60172b75d50b6889757eda"
integrity sha512-sLtGB0znXdmo6lM8hy5wTVo+fLqvIuO8hEpgc0DvPmFZqvBu/WB7AarEwhxVKjf3rVbws/rC8Xf+AlsOb36lJQ==
version "1.3.512"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.512.tgz#620e6731c693ddaaf3750f23dde7f7c4347b7327"
integrity sha512-y02hdFg7c4jTfREcXf4fRhHLt7BzofMgd7JAKY+u9i62E0D1eIpLQPFo5/eboZL0bIVY9YHZA53+vCGNFREOXA==
elliptic@^6.0.0, elliptic@^6.5.2:
version "6.5.3"
@ -9202,9 +9202,9 @@ minipass-flush@^1.0.5:
minipass "^3.0.0"
minipass-pipeline@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34"
integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==
version "1.2.4"
resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
dependencies:
minipass "^3.0.0"
@ -9274,7 +9274,7 @@ mkdirp@*, mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1, mkdirp@~0.5.x:
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1, mkdirp@~0.5.x:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@ -10436,13 +10436,13 @@ pnp-webpack-plugin@1.6.4:
ts-pnp "^1.1.6"
portfinder@^1.0.26:
version "1.0.27"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.27.tgz#a41333c116b5e5f3d380f9745ac2f35084c4c758"
integrity sha512-bJ3U3MThKnyJ9Dx1Idtm5pQmxXqw08+XOHhi/Lie8OF1OlhVaBFhsntAIhkZYjfDcCzszSr0w1yCbccThhzgxQ==
version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
dependencies:
async "^2.6.2"
debug "^3.1.1"
mkdirp "^0.5.1"
mkdirp "^0.5.5"
posix-character-classes@^0.1.0:
version "0.1.1"

Loading…
Cancel
Save