{"version":3,"sources":["webpack:///src/app/models/client.ts","webpack:///src/app/services/device-token.service.ts","webpack:///src/app/toolbar/toolbar.component.ts","webpack:///src/app/toolbar/toolbar.component.html","webpack:///src/app/identity-providers/identity-providers.component.ts","webpack:///src/app/identity-providers/identity-providers.component.html","webpack:///src/environments/environment.ts","webpack:///src/app/models/device-token.ts","webpack:///src/app/beheer-settings/beheer-settings.component.ts","webpack:///src/app/beheer-settings/beheer-settings.component.html","webpack:///src/app/beheer-settings/app-setting-dialog.html","webpack:///src/app/models/app-setting.ts","webpack:///src/app/services/client.service.ts","webpack:///src/app/services/app-config.service.ts","webpack:///src/app/services/auth-guard.service.ts","webpack:///src/app/models/device-code-idp-rp.ts","webpack:///src/app/services/app-info.service.ts","webpack:///src/app/device-tokens/device-tokens.component.ts","webpack:///src/app/device-tokens/device-tokens.component.html","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app-user/app-user.component.ts","webpack:///src/app/app-user/app-user.component.html","webpack:///src/app/resource/resource.component.ts","webpack:///src/app/resource/resource.component.html","webpack:///src/app/unauthorized/unauthorized.component.ts","webpack:///src/app/unauthorized/unauthorized.component.html","webpack:///src/app/client/client.component.ts","webpack:///src/app/client/client.component.html","webpack:///src/app/services/claim-mapping.service.ts","webpack:///src/app/app.module.ts","webpack:///src/app/clients/clients.component.ts","webpack:///src/app/clients/clients.component.html","webpack:///src/app/device-code-rps/device-code-rps.component.ts","webpack:///src/app/device-code-rps/device-code-rps.component.html","webpack:///src/app/services/device-code-idp-rp.service.ts","webpack:///src/app/services/auth.service.ts","webpack:///src/app/services/resource.service.ts","webpack:///src/app/services/token.interceptor.ts","webpack:///src/app/app-users/app-users.component.ts","webpack:///src/app/app-users/app-users.component.html","webpack:///src/app/resources/resources.component.ts","webpack:///src/app/resources/resources.component.html","webpack:///src/app/services/app-user.service.ts","webpack:///src/app/start/start.component.ts","webpack:///src/app/start/start.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/material.module.ts","webpack:///src/app/device-code-rp/device-code-rp.component.ts","webpack:///src/app/device-code-rp/device-code-rp.component.html","webpack:///src/app/services/custom-http-param-encoder.ts","webpack:///src/app/services/identity-provider.service.ts","webpack:///src/app/identity-provider/identity-provider.component.ts","webpack:///src/app/identity-provider/identity-provider.component.html","webpack:///src/app/services/app-setting.service.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/device-token/device-token.component.ts","webpack:///src/app/device-token/device-token.component.html"],"names":["Client","allowedScopes","allowedRedirectUris","allowedCorsOrigins","DeviceTokenService","http","appConfigSvc","naam","params","append","get","getConfig","apiRoot","deviceTokenId","token","put","post","ToolbarComponent","appreference","titel","toggleMenu","IdentityProvidersComponent","identityProviderSvc","router","dataSource","displayedColumns","subscribe","data","sort","identityProvider","navigate","identityProviderId","RecordToevoegen","environment","production","DeviceToken","BeheerSettingsComponent","appSettingSvc","dialog","ladenSettings","load","a","appSetting","dialogRef","open","AppSettingDialog","afterClosed","r","fb","snackBar","appSettingForm","group","voertuigSoortCode","category","name","appSettingValue","controls","value","save","close","error","showErrorToast","melding","tekst","message","duration","SluitDialog","CancelDialog","AppSetting","ClientService","clientId","clientSecret","clientSecretId","client","AppConfigService","promise","Promise","resolve","reject","fetch","then","response","json","c","appConfig","oidcAuthority","oidcClientId","oidcRedirectUri","oidcPostLogoutRedirectUri","oidcScopes","oidcSilentRedirectUri","version","AuthGuardService","authService","isLoggedInObs","pipe","e","err","DeviceCodeIdpRp","AppInfoService","DeviceTokensComponent","deviceTokenSvc","filterForm","Naam","filterGewijzigd","sortData","datas","b","isAsc","direction","active","compareN","compareS","tokenStatus","String","geldig","passkey","toLowerCase","t","gezochteNaam","localeCompare","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","Error","code","keys","webpackContextKeys","Object","module","exports","AppComponent","media","appInfoSvc","activeMediaQuery","appComponentMenuIsOpen","drawerMode","versionnumber","appInfo","username","versionNumber","isAdmin","isGebruiker","isRegioBeheerder","menuItems","watcher","media$","change","mqAlias","getUser","u","currentUser","login","pad","navigateByUrl","profile","item","childrenVisible","AppUserComponent","route","appUserSvc","resourceSvc","claimMappingSvc","appUserForm","getAppUserFormGroup","claimsForm","getClaimsFormGroup","dataSourceLogboek","displayedColumnsLogboek","dataSourceGrants","displayedColumnsGrants","snapshot","appUserId","i","appUser","loadClaimMappings","auditHistory","loadGrants","grants","g","sortGrants","identityProviderSubClaimValue","existingClaims","scopes","forEach","concat","s","claimsFormArray","scopeType","matchingClaim","find","outboundClaimValue","outboundClaimType","push","createClaimMappingFormGroup","validFrom","validTo","audit","sortLogboek","scope","enabled","van","tot","row","touched","console","log","from","toDate","to","nieuweClaim","claimMappingId","inboundClaimType","inboundClaimValue","markAsPristine","markAsUntouched","items","array","isDisabled","emailAddress","phoneNumber","remarks","validUntil","disabled","identityProviderCaption","opslaanAlgemeen","opslaanClaims","ResourceComponent","resourceForm","getFormGroup","newScopeForm","getNewScopeForm","beheerders","zoekTerm","zoekTermTreffers","resourceId","resource","resourceType","resourceSecret","getBeheerders","res","getScopesArray","scopeId","description","x","scopesArray","idx","findIndex","removeAt","markAsDirty","markAsTouched","nieuweScope","event","bestaandeBeheerder","option","addBeheerder","reset","removeBeheerder","RecordOpslaan","ScopeToevoegen","appUsersZoeken","toevoegenGekozenBeheerder","UnauthorizedComponent","location","access_token","logout","ClientComponent","clientSvc","clientForm","getClientFormGroup","allScopes","clientSecretsForm","getClientSecretFormGroup","nieuwSecretForm","getnieuwSecretFormGroup","getAllScopes","getSecrets","clientSecrets","y","z","clientName","accessTokenLifetime","allowedGrantTypes","getRedirectUriArray","allowAccessTokensViaBrowser","getCorsOriginArray","absoluteRefreshTokenLifetime","slidingRefreshTokenLifetime","identityTokenLifetime","refreshTokenExpiration","refreshTokenUsage","updateAccessTokenClaimsOnRefresh","allowOfflineAccess","requirePkce","postLogoutRedirectUris","getPostLogoutRedirectUriArray","split","uris","allowedRedirectUri","uriArray","indexOf","nieuweUriInput","nativeElement","length","allowedPostLogoutRedirectUri","nieuwePostLogoutUriInput","origins","allowedCorsOrigin","originArray","nieuweOriginInput","join","postLogoutUris","secretControls","secrets","secretsArray","cs","saveSecret","bestaandeSecrets","deleteSecret","d","nieuwSecret","nieuweUriChanged","nieuwePostLogoutUriChanged","nieuweOriginChanged","ClaimMappingService","encoder","toString","claimMapping","init_app","loadAppConfig","AppModule","provide","useFactory","multi","deps","useClass","useValue","ClientsComponent","DeviceCodeRpsComponent","deviceCodeRpSvc","rp","deviceCodeIdpRpId","DeviceCodeIdpRpService","AuthService","_userManager","settings","authority","client_id","redirect_uri","silent_redirect_uri","post_logout_redirect_uri","response_type","automaticSilentRenew","user","signinRedirect","signinSilent","signoutRedirect","ResourceService","TokenInterceptor","auth","status","loggedIn","renewToken","request","next","headers","set","clone","handle","handleAccessDeniedError","AppUsersComponent","ResourcesComponent","AppUserService","StartComponent","routes","path","component","canActivate","AppRoutingModule","forRoot","relativeLinkResolution","MaterialModule","DeviceCodeRpComponent","rpForm","getRpFormGroup","Number","client_Id","client_Secret","redirectUri","akkoord","confirm","RecordVerwijderen","CustomHttpParamEncoder","key","encodeURIComponent","decodeURIComponent","IdentityProviderService","idp","IdentityProviderComponent","identityProviderForm","authenticationType","caption","signInId","signInSecret","metadataAddress","postLogoutRedirect","disableNewUsers","isActive","required","updateValueAndValidity","valid","AppSettingService","appSettingId","bootstrapModule","webpackEmptyAsyncContext","DeviceTokenComponent","deviceForm","getDeviceFormGroup","device","naamInput","focus","ontkoppel","Loskoppelen"],"mappings":"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","file":"main-es5.js","sourcesContent":["export class Client {\r\n constructor() {\r\n this.allowedScopes = '';\r\n this.allowedRedirectUris = '';\r\n this.allowedCorsOrigins = '';\r\n }\r\n\r\n clientId: string;\r\n absoluteRefreshTokenLifetime: number;\r\n accessTokenLifetime: number;\r\n accessTokenType: number;\r\n allowedCorsOrigins: string;\r\n allowedGrantTypes: string;\r\n allowedScopes: string;\r\n allowRememberConsent: boolean;\r\n alwaysSendClientClaims: boolean;\r\n authorizationCodeLifetime: number;\r\n clientName: string;\r\n clientUri: string;\r\n enabled: boolean;\r\n enableLocalLogin: boolean;\r\n identityTokenLifetime: number;\r\n includeJwtId: boolean;\r\n logoUri: string;\r\n postLogoutRedirectUris: string;\r\n prefixClientClaims: boolean;\r\n refreshTokenExpiration: number;\r\n refreshTokenUsage: number;\r\n requireConsent: boolean;\r\n slidingRefreshTokenLifetime: number;\r\n updateAccessTokenClaimsOnRefresh: boolean;\r\n allowedRedirectUris: string;\r\n alwaysIncludeUserClaimsInIdToken: boolean;\r\n allowOfflineAccess: boolean;\r\n identityProviderRestrictions: string;\r\n userSsoLifetime: number;\r\n userCodeType: string;\r\n deviceCodeLifeTime: number;\r\n protocolType: string;\r\n requireClientSecret: boolean;\r\n description: string;\r\n requirePkce: boolean;\r\n allowPlainTextPkce: boolean;\r\n allowAccessTokensViaBrowser: boolean;\r\n frontChannelLogoutUri: string;\r\n frontChannelLogoutSessionRequired: boolean;\r\n backChannelLogoutUri: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { DeviceToken } from '../models/device-token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceTokenService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get(naam: string) {\r\n const params = new HttpParams()\r\n .append('naam', naam ? naam : '');\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken', { params: params });\r\n }\r\n\r\n fetch(deviceTokenId: number) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken/' + deviceTokenId);\r\n }\r\n\r\n ontkoppel(deviceTokenId: number) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken/' + deviceTokenId + '/ontkoppel');\r\n }\r\n\r\n save(token: DeviceToken) {\r\n if (token.deviceTokenId) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken/' + token.deviceTokenId, token);\r\n } else {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken', token);\r\n }\r\n }\r\n\r\n delete(deviceTokenId: number) {\r\n return this.http.delete(this.appConfigSvc.getConfig().apiRoot + '/DeviceToken/' + deviceTokenId);\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppComponent } from '../app.component';\r\n\r\n@Component({\r\n selector: 'app-toolbar',\r\n inputs: ['titel'],\r\n templateUrl: './toolbar.component.html',\r\n styleUrls: ['./toolbar.component.scss']\r\n})\r\nexport class ToolbarComponent implements OnInit {\r\n\r\n constructor(public appreference: AppComponent) { }\r\n\r\n titel: string = 'Identity Beheer';\r\n ngOnInit() {\r\n }\r\n\r\n public toggleMenu() {\r\n\r\n this.appreference.toggleMenu();\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n\r\n
{{titel}}
\r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { IdentityProvider } from '../models/identity-provider';\r\nimport { IdentityProviderService } from '../services/identity-provider.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-identity-providers',\r\n templateUrl: './identity-providers.component.html',\r\n styleUrls: ['./identity-providers.component.scss']\r\n})\r\nexport class IdentityProvidersComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['identityProviderId', 'caption', 'authenticationType', 'redirectUri','isActive' ];\r\n\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private identityProviderSvc: IdentityProviderService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n\r\n this.identityProviderSvc.get().subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n public Details(identityProvider: IdentityProvider) {\r\n this.router.navigate(['beheeridp', { identityProviderId: identityProvider.identityProviderId }]);\r\n }\r\n\r\n public RecordToevoegen() {\r\n this.router.navigate(['beheeridp', { identityProviderId: 0 }]);\r\n }\r\n}\r\n","Beheer Identityproviders\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Id\r\n {{ x.identityProviderId }}\r\n Naam\r\n {{ x.caption }}\r\n Type\r\n {{ x.authenticationType }}\r\n Redirect\r\n {{ x.redirectUri }}\r\n Actief\r\n {{ x.isActive }}\r\n
\r\n\r\n
\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","export class DeviceToken {\r\n deviceTokenId: number;\r\n naam: string;\r\n passkey: string;\r\n tokenStatus: string;\r\n geldig: boolean;\r\n}\r\n","import { Component, OnInit, ViewChild, Inject } from '@angular/core';\r\nimport { AppSettingService } from '../services/app-setting.service';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AppSetting } from '../models/app-setting';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-beheer-settings',\r\n templateUrl: './beheer-settings.component.html',\r\n styleUrls: ['./beheer-settings.component.scss']\r\n})\r\nexport class BeheerSettingsComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['appSettingId', 'category', 'name', 'appSettingValue'];\r\n\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private appSettingSvc: AppSettingService, private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.ladenSettings();\r\n }\r\n\r\n ladenSettings() {\r\n this.appSettingSvc.load().subscribe(a => {\r\n this.dataSource.data = a;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n Details(appSetting: AppSetting) {\r\n\r\n let dialogRef = this.dialog.open(AppSettingDialog, { data: appSetting });\r\n\r\n dialogRef.afterClosed().subscribe(r => {\r\n this.ladenSettings();\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-setting-dialog',\r\n templateUrl: 'app-setting-dialog.html',\r\n})\r\nexport class AppSettingDialog {\r\n\r\n appSettingForm: FormGroup = this.fb.group({\r\n voertuigSoortCode: [],\r\n naam: []\r\n });\r\n\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: AppSetting,\r\n public dialogRef: MatDialogRef,\r\n private fb: FormBuilder,\r\n private appSettingSvc: AppSettingService,\r\n private snackBar: MatSnackBar\r\n\r\n ) {\r\n\r\n this.appSettingForm = this.fb.group({\r\n category: [data.category],\r\n name: [data.name],\r\n appSettingValue: [data.appSettingValue]\r\n });\r\n\r\n }\r\n\r\n SluitDialog() {\r\n\r\n this.data.appSettingValue = this.appSettingForm.controls['appSettingValue'].value;\r\n\r\n this.appSettingSvc.save(this.data).subscribe(r => {\r\n this.dialogRef.close();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan');\r\n });\r\n }\r\n\r\n CancelDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n}\r\n","Beheer Settings\r\n
\r\n\r\n \r\n

Settings

\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n
Id\r\n {{ x.appSettingId }}\r\n Categorie\r\n {{ x.category }}\r\n Naam\r\n {{ x.name }}\r\n Type\r\n {{ x.appSettingType }}\r\n Waarde\r\n {{ x.appSettingValue }}\r\n
\r\n
\r\n
\r\n","

Setting

\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n","export class AppSetting {\r\n \"appSettingId\": number;\r\n \"appSettingKey\": string;\r\n \"appSettingType\": string;\r\n \"appSettingValue\": string;\r\n \"category\": string;\r\n \"name\": string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Client } from '../models/client';\r\nimport { ClientSecret } from '../models/client-secret';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Client');\r\n }\r\n\r\n fetch(clientId: string) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Client/' + clientId);\r\n }\r\n\r\n getSecrets(clientId: string) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Client/' + clientId + '/Secrets');\r\n }\r\n\r\n saveSecret(clientSecret: ClientSecret) {\r\n if (clientSecret.clientSecretId) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/Client/' + clientSecret.clientId + '/Secrets/' + clientSecret.clientSecretId, clientSecret);\r\n } else {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/Client/' + clientSecret.clientId + '/Secrets', clientSecret);\r\n }\r\n \r\n }\r\n\r\n deleteSecret(clientSecret: ClientSecret) {\r\n return this.http.delete(this.appConfigSvc.getConfig().apiRoot + '/Client/' + clientSecret.clientId + '/Secrets/' + clientSecret.clientSecretId);\r\n }\r\n\r\n save(client: Client) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/Client/' + client.clientId, client);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppConfig } from '../models/app-config';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppConfigService {\r\n\r\n private static appConfig: AppConfig\r\n\r\n constructor() {\r\n //if ( !AppConfigService.appConfig ) {\r\n // this.loadAppConfig().then( function () { return; } )\r\n //}\r\n }\r\n\r\n loadAppConfig() {\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n\r\n fetch('/app-config.json')\r\n .then((response) => response.json())\r\n .then(function (c) {\r\n AppConfigService.appConfig = {\r\n \"oidcAuthority\": c.oidcAuthority,\r\n \"oidcClientId\": c.oidcClientId,\r\n \"oidcRedirectUri\": c.oidcRedirectUri,\r\n \"oidcPostLogoutRedirectUri\": c.oidcPostLogoutRedirectUri,\r\n \"oidcScopes\": c.oidcScopes,\r\n \"oidcSilentRedirectUri\": c.oidcSilentRedirectUri,\r\n \"apiRoot\": c.apiRoot,\r\n \"version\": c.version\r\n };\r\n\r\n resolve();\r\n\r\n }, function () {\r\n reject();\r\n });\r\n\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n getConfig() {\r\n return AppConfigService.appConfig;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router } from '@angular/router';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n\r\n constructor( private authService: AuthService, private router: Router ) { }\r\n canActivate() {\r\n \r\n return this.authService.isLoggedInObs().pipe(\r\n map( e => {\r\n if ( e ) {\r\n return true;\r\n } else {\r\n this.router.navigate( ['unauthorized'] );\r\n }\r\n } ),\r\n catchError( ( err ) => {\r\n this.router.navigate( ['unauthorized'] );\r\n return of( false );\r\n } ));\r\n }\r\n}\r\n","export class DeviceCodeIdpRp {\r\n deviceCodeIdpRpId: number;\r\n naam: string;\r\n client_Id: string;\r\n client_Secret: string;\r\n redirectUri: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { AppInfo } from '../models/app-info';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppInfoService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppInfo');\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { DeviceToken } from '../models/device-token';\r\nimport { DeviceTokenService } from '../services/device-token.service';\r\nimport {FormBuilder, FormGroup} from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-device-tokens',\r\n templateUrl: './device-tokens.component.html',\r\n styleUrls: ['./device-tokens.component.scss']\r\n})\r\nexport class DeviceTokensComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['deviceTokenId','naam', 'passkey', 'geldig'];\r\n filterForm: FormGroup = this.fb.group({ Naam: [''] });\r\n\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n constructor(\r\n private deviceTokenSvc: DeviceTokenService,\r\n private router: Router,\r\n private fb: FormBuilder\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.filterGewijzigd();\r\n this.deviceTokenSvc.get(null).subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.sortData = (datas: DeviceToken[], sort: MatSort) => {\r\n return datas.sort((a : DeviceToken, b: DeviceToken) => {\r\n const isAsc = sort.direction === 'asc';\r\n switch (sort.active) {\r\n case 'deviceTokenId': return this.compareN(a.deviceTokenId, b.deviceTokenId, isAsc);\r\n case 'naam': return this.compareS(a.naam, b.naam, isAsc);\r\n case 'tokenStatus': return this.compareS(a.tokenStatus, b.tokenStatus, isAsc);\r\n case 'geldig': return this.compareS(String(a.geldig), String(b.geldig), isAsc);\r\n case 'passkey': return this.compareS(a.passkey, b.passkey, isAsc);\r\n default: return 0;\r\n }\r\n });\r\n };\r\n });\r\n }\r\n\r\n compareN(a: number, b: number, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\r\n }\r\n\r\n compareS(a: string, b: string, isAsc: boolean) {\r\n return (a.toLowerCase() < b.toLowerCase() ? -1 : 1) * (isAsc ? 1 : -1);\r\n }\r\n\r\n public Details(t: DeviceToken) {\r\n this.router.navigate(['devicetoken', { deviceTokenId: t.deviceTokenId }]);\r\n }\r\n\r\n public RecordToevoegen() {\r\n this.router.navigate(['devicetoken']);\r\n }\r\n\r\n filterGewijzigd() {\r\n const gezochteNaam: string = this.filterForm.value.Naam;\r\n\r\n this.deviceTokenSvc.get(gezochteNaam).subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n compareString(a: string, b: string, isAsc: boolean) {\r\n return a.localeCompare(b, 'NL-nl') * (isAsc ? 1 : -1);\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n search\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Id\r\n {{ x.deviceTokenId }}\r\n Naam\r\n {{ x.naam }}\r\n Toegangscode\r\n {{ x.passkey }}\r\n Geldig\r\n {{ x.geldig }}\r\n
\r\n\r\n
\r\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AppInfoService } from './services/app-info.service';\r\nimport { AppConfigService } from './services/app-config.service';\r\nimport { AuthService } from './services/auth.service';\r\nimport { MediaChange, MediaObserver } from '@angular/flex-layout';\r\nimport { Subscription } from 'rxjs';\r\nimport { User } from 'oidc-client';\r\nimport { AppInfo } from './models/app-info';\r\nimport * as moment from 'moment';\r\nimport 'moment/locale/nl';\r\nimport { MenuItem } from './models/menu-item';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n watcher: Subscription;\r\n activeMediaQuery = \"\";\r\n appComponentMenuIsOpen: boolean = true;\r\n currentUser: User;\r\n drawerMode: string = \"side\";\r\n versionnumber: string = \"1.1.0.0\";\r\n\r\n appInfo: AppInfo = {\r\n username: null,\r\n versionNumber: '1.1.0.0',\r\n isAdmin: false,\r\n isGebruiker: false,\r\n isRegioBeheerder: false,\r\n menuItems: []\r\n };\r\n\r\n\r\n constructor(private router: Router, private authService: AuthService, media: MediaObserver,\r\n private appConfigSvc: AppConfigService, private appInfoSvc: AppInfoService) {\r\n\r\n this.watcher = media.media$.subscribe((change: MediaChange) => {\r\n this.activeMediaQuery = change ? change.mqAlias : '';\r\n if (change.mqAlias == 'xs' || change.mqAlias == 'sm') {\r\n this.appComponentMenuIsOpen = false;\r\n this.drawerMode = \"over\";\r\n } else {\r\n this.appComponentMenuIsOpen = true;\r\n this.drawerMode = \"side\";\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n moment.locale('nl');\r\n\r\n this.authService.getUser().subscribe(u => {\r\n this.currentUser = u;\r\n this.appInfoSvc.get().subscribe(a => {\r\n this.appInfo = a;\r\n this.versionnumber = a.versionNumber;\r\n });\r\n });\r\n }\r\n\r\n login() {\r\n this.authService.login();\r\n }\r\n\r\n public DrawerMode(): string {\r\n return this.drawerMode;\r\n }\r\n\r\n public navigate(pad: string) {\r\n\r\n if (this.activeMediaQuery == 'xs' || this.activeMediaQuery == 'sm') {\r\n this.appComponentMenuIsOpen = false;\r\n }\r\n\r\n this.router.navigateByUrl(pad);\r\n }\r\n\r\n public naam(): string {\r\n\r\n if (!!this.currentUser && !!this.currentUser.profile && !!this.currentUser.profile['name']) {\r\n return this.currentUser.profile['name'];\r\n } else {\r\n return 'Onbekend';\r\n }\r\n }\r\n\r\n public menuIsOpen(): boolean {\r\n\r\n return this.appComponentMenuIsOpen;\r\n }\r\n\r\n public toggleMenu() {\r\n this.appComponentMenuIsOpen = !this.appComponentMenuIsOpen;\r\n }\r\n\r\n public toggleChildren(item: MenuItem) {\r\n item.childrenVisible = !item.childrenVisible;\r\n }\r\n}\r\n","\r\n \r\n\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
Versie {{ versionnumber }}
Ingelogd als {{ naam() }}
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AppUserService } from '../services/app-user.service';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AppUser } from '../models/app-user';\r\nimport { ResourceService } from '../services/resource.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Scope } from '../models/scope';\r\nimport { ClaimMappingService } from '../services/claim-mapping.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ClaimMapping } from '../models/claim-mapping';\r\nimport * as moment from 'moment';\r\nimport { PersistedGrantInfo } from '../models/persisted-grant-info';\r\n\r\n@Component({\r\n selector: 'app-app-user',\r\n templateUrl: './app-user.component.html',\r\n styleUrls: ['./app-user.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppUserComponent implements OnInit {\r\n\r\n appUser: AppUser;\r\n appUserForm: FormGroup = this.getAppUserFormGroup(null);\r\n claimsForm: FormGroup = this.getClaimsFormGroup();\r\n\r\n existingClaims: ClaimMapping[];\r\n\r\n\r\n dataSourceLogboek = new MatTableDataSource();\r\n displayedColumnsLogboek: string[] = ['lastLoginDateTime', 'lastLoginIpAddress', 'lastLoginUserAgent', 'isDisabled'];\r\n @ViewChild('sortLogboek', { static: true }) sortLogboek: MatSort;\r\n\r\n dataSourceGrants = new MatTableDataSource();\r\n displayedColumnsGrants: string[] = ['persistedGrantType', 'clientId', 'creationTime', 'expiration'];\r\n @ViewChild('sortGrants', { static: true }) sortGrants: MatSort;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private appUserSvc: AppUserService,\r\n private resourceSvc: ResourceService,\r\n private claimMappingSvc: ClaimMappingService,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.claimsForm = this.getClaimsFormGroup();\r\n\r\n this.appUserSvc.fetch(+this.route.snapshot.params.appUserId)\r\n .subscribe((i: AppUser) => {\r\n this.appUser = i;\r\n this.appUserForm = this.getAppUserFormGroup(this.appUser);\r\n\r\n this.loadClaimMappings(this.appUser);\r\n this.auditHistory(this.appUser);\r\n this.loadGrants(this.appUser);\r\n\r\n })\r\n\r\n }\r\n\r\n loadGrants(appUser: AppUser) {\r\n this.appUserSvc.grants(appUser.appUserId).subscribe(g => {\r\n this.dataSourceGrants.data = g;\r\n this.dataSourceGrants.sort = this.sortGrants;\r\n\r\n });\r\n }\r\n\r\n loadClaimMappings(appUser: AppUser) {\r\n\r\n forkJoin(\r\n this.claimMappingSvc.get(appUser.identityProviderId, appUser.identityProviderSubClaimValue),\r\n this.resourceSvc.get()\r\n ).subscribe(([c, r]) => {\r\n\r\n this.existingClaims = c;\r\n\r\n let scopes: Scope[] = [];\r\n\r\n r.forEach(item => {\r\n scopes = scopes.concat(item.scopes.map(s => {\r\n return s;\r\n }));\r\n });\r\n\r\n this.claimsForm = this.getClaimsFormGroup();\r\n let claimsFormArray: FormArray = this.claimsForm.get('items') as FormArray;\r\n\r\n scopes.forEach(s => {\r\n\r\n if (s.scopeType === 1) {\r\n var matchingClaim = c.find(a => a.outboundClaimValue === s.name && a.outboundClaimType === 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role');\r\n\r\n claimsFormArray.push(this.createClaimMappingFormGroup(\r\n s.name,\r\n matchingClaim ? true : false,\r\n matchingClaim ? matchingClaim.validFrom : null,\r\n matchingClaim ? matchingClaim.validTo : null));\r\n }\r\n });\r\n\r\n\r\n });\r\n }\r\n\r\n auditHistory(appUser: AppUser) {\r\n this.appUserSvc.audit(appUser.appUserId).subscribe(data => {\r\n this.dataSourceLogboek.data = data;\r\n this.dataSourceLogboek.sort = this.sortLogboek;\r\n });\r\n\r\n }\r\n createClaimMappingFormGroup(scope: string, enabled: boolean, van: Date, tot: Date): FormGroup {\r\n\r\n return this.fb.group({\r\n enabled: enabled,\r\n outboundClaimValue: scope,\r\n validFrom: van,\r\n validTo: tot\r\n });\r\n }\r\n\r\n opslaanClaims() {\r\n\r\n\r\n for (var i in this.claimsForm.controls['items']['controls']) {\r\n\r\n var row = this.claimsForm.controls['items']['controls'][i];\r\n\r\n if (row.touched) {\r\n console.log('Touched: ');\r\n console.log(row);\r\n\r\n var matchingClaim = this.existingClaims.find(a => a.outboundClaimValue === row.value.outboundClaimValue\r\n && a.outboundClaimType === 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role');\r\n\r\n if (!matchingClaim) {\r\n // Nieuwe claim\r\n\r\n var from: Date = moment(row.value.validFrom ? row.value.validFrom : '2000-01-01').toDate()\r\n var to: Date = row.value.validTo ? moment(row.value.validTo).toDate() : null;\r\n\r\n var nieuweClaim: ClaimMapping = {\r\n claimMappingId: 0,\r\n identityProviderId: this.appUser.identityProviderId,\r\n inboundClaimType: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier',\r\n inboundClaimValue: this.appUser.identityProviderSubClaimValue,\r\n outboundClaimType: 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role',\r\n outboundClaimValue: row.value.outboundClaimValue,\r\n validFrom: from,\r\n validTo: to\r\n };\r\n\r\n this.claimMappingSvc.save(nieuweClaim).subscribe(r => {\r\n this.loadClaimMappings(this.appUser);\r\n });\r\n\r\n } else {\r\n // Bestaande claim\r\n\r\n if (!row.value.enabled) {\r\n // Delete\r\n this.claimMappingSvc.delete(matchingClaim).subscribe(r => {\r\n console.log(r);\r\n this.loadClaimMappings(this.appUser);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het verwijderen van de mapping');\r\n });\r\n\r\n } else {\r\n // Update\r\n matchingClaim.validFrom = moment(row.value.validFrom).toDate();\r\n matchingClaim.validTo = moment(row.value.validTo).toDate();\r\n\r\n this.claimMappingSvc.save(matchingClaim).subscribe(r => {\r\n console.log(r);\r\n row.markAsPristine();\r\n row.markAsUntouched();\r\n this.loadClaimMappings(this.appUser);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de mapping');\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n }\r\n\r\n getClaimsFormGroup(): FormGroup {\r\n return this.fb.group({ items: this.fb.array([]) });\r\n }\r\n\r\n opslaanAlgemeen() {\r\n console.log('Opslaan algemeen');\r\n console.log(this.appUserForm);\r\n\r\n if (this.appUserForm.touched) {\r\n\r\n this.appUser.isDisabled = this.appUserForm.value.isDisabled;\r\n this.appUser.emailAddress = this.appUserForm.value.emailAddress;\r\n this.appUser.phoneNumber = this.appUserForm.value.phoneNumber;\r\n this.appUser.remarks = this.appUserForm.value.remarks;\r\n this.appUser.validFrom = moment(this.appUserForm.value.validFrom).toDate();\r\n this.appUser.validUntil = this.appUserForm.value.validUntil ? moment(this.appUserForm.value.validUntil).toDate() : null;\r\n\r\n this.appUserSvc.save(this.appUser).subscribe(a => {\r\n console.log(a);\r\n this.appUserForm.markAsPristine();\r\n this.appUserForm.markAsUntouched();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de gebruiker');\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n getAppUserFormGroup(a: AppUser): FormGroup {\r\n\r\n if (!a) {\r\n return this.fb.group({\r\n appUserId: [{ value: '', disabled: true }],\r\n name: [{ value: '', disabled: true }],\r\n identityProviderCaption: [{ value: '', disabled: true }],\r\n identityProviderSubClaimValue: [{ value: '', disabled: true }],\r\n emailAddress: [{ value: '', disabled: true }],\r\n isDisabled: [''],\r\n remarks: [''],\r\n validFrom: [''],\r\n validUntil: [''],\r\n phoneNumber: ['']\r\n });\r\n }\r\n\r\n return this.fb.group({\r\n appUserId: [{ value: a.appUserId, disabled: true }],\r\n name: [{ value: a.name, disabled: true }],\r\n identityProviderCaption: [{ value: a.identityProviderCaption, disabled: true }],\r\n identityProviderSubClaimValue: [{ value: a.identityProviderSubClaimValue, disabled: true }],\r\n emailAddress: [{ value: a.emailAddress, disabled: true }],\r\n isDisabled: [a.isDisabled],\r\n remarks: [a.remarks],\r\n validFrom: [a.validFrom],\r\n validUntil: [a.validUntil],\r\n phoneNumber: [a.phoneNumber]\r\n });\r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n\r\n}\r\n","Beheer gebruiker\r\n\r\n
\r\n\r\n \r\n

{{ appUser.name}}

\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n \r\n \r\n Algemeen\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n Uitgeschakeld\r\n Actief\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n\r\n edit\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n Rollen\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
ScopeActiefVanTot
\r\n {{ c.value.outboundClaimValue }}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n edit\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Logboek\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Laatste login\r\n {{ x.lastLoginDateTime | amDateFormat:'YYYY-MM-DD HH:mm:ss' }}\r\n IP Adres\r\n {{ x.lastLoginIpAddress }}\r\n UserAgent\r\n {{ x.lastLoginUserAgent }}\r\n Disabled\r\n {{ (x.isDisabled) }}\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n Grants\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n
Type\r\n {{ x.persistedGrantType }}\r\n ClientId\r\n {{ x.clientId }}\r\n Aangemaakt\r\n {{ x.creationTime | amDateFormat:'YYYY-MM-DD HH:mm:ss' }}\r\n Verloopt\r\n {{ x.expiration | amDateFormat:'YYYY-MM-DD HH:mm:ss' }}\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ResourceService } from '../services/resource.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, FormArray, AbstractControl, FormControl } from '@angular/forms';\r\nimport { Resource } from '../models/resource';\r\nimport { Scope } from '../models/scope';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AppUser } from '../models/app-user';\r\nimport { AppUserService } from '../services/app-user.service';\r\n\r\n@Component({\r\n selector: 'app-resource',\r\n templateUrl: './resource.component.html',\r\n styleUrls: ['./resource.component.scss']\r\n})\r\nexport class ResourceComponent implements OnInit {\r\n\r\n resource: Resource;\r\n resourceForm: FormGroup = this.getFormGroup(null);\r\n newScopeForm: FormGroup = this.getNewScopeForm();\r\n\r\n beheerders: AppUser[] = [];\r\n zoekTerm: FormControl = new FormControl();\r\n zoekTermTreffers: AppUser[] = [];\r\n \r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private resourceSvc: ResourceService,\r\n private appUserSvc: AppUserService,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n let resourceId: number = +this.route.snapshot.params.resourceId;\r\n\r\n if (!resourceId) {\r\n\r\n this.resource = {\r\n resourceId: 0,\r\n name: '',\r\n resourceType: 1,\r\n resourceSecret: '',\r\n scopes: []\r\n };\r\n this.resourceForm = this.getFormGroup(this.resource);\r\n\r\n } else {\r\n \r\n this.resourceSvc.fetch(resourceId)\r\n .subscribe((r: Resource) => {\r\n this.resource = r;\r\n this.resourceForm = this.getFormGroup(this.resource);\r\n this.resourceSvc.getBeheerders(r.resourceId).subscribe(b => {\r\n this.beheerders = b;\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n getFormGroup(res: Resource): FormGroup {\r\n\r\n if (!res) {\r\n return this.fb.group({\r\n resourceId: [''],\r\n name: [''],\r\n resourceType: [''],\r\n resourceSecret: [''],\r\n scopes: this.fb.array([])\r\n });\r\n } else {\r\n\r\n this.getScopesArray(res.scopes);\r\n\r\n return this.fb.group({\r\n resourceId: [res.resourceId],\r\n name: [res.name],\r\n resourceType: [res.resourceType],\r\n resourceSecret: [res.resourceSecret],\r\n scopes: this.getScopesArray(res.scopes)\r\n });\r\n }\r\n }\r\n\r\n getScopesArray(scopes: Scope[]): FormArray {\r\n\r\n var a = this.fb.array([]);\r\n\r\n scopes.forEach(u => {\r\n a.push(this.fb.group({\r\n scopeId: [u.scopeId],\r\n description: [u.description],\r\n scopeType: [u.scopeType],\r\n name: [u.name]\r\n }));\r\n });\r\n return a;\r\n }\r\n\r\n getNewScopeForm(): FormGroup {\r\n return this.fb.group({\r\n scopeId: [0],\r\n description: [''],\r\n scopeType: [1],\r\n name: ['']\r\n });\r\n }\r\n\r\n RecordOpslaan() {\r\n console.log(this.resourceForm);\r\n\r\n if (this.resourceForm.touched) {\r\n\r\n this.resource.name = this.resourceForm.value.name;\r\n this.resource.resourceId = this.resourceForm.value.resourceId;\r\n this.resource.resourceType = this.resourceForm.value.resourceType;\r\n this.resource.resourceSecret = this.resourceForm.value.resourceSecret;\r\n this.resource.scopes = this.resourceForm.value.scopes;\r\n\r\n this.resourceSvc.save(this.resource).subscribe(x => {\r\n console.log(x);\r\n this.resourceForm.markAsPristine();\r\n this.resourceForm.markAsUntouched();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de resource');\r\n })\r\n\r\n\r\n }\r\n }\r\n \r\n ScopeVerwijderen(c: AbstractControl) {\r\n let scopesArray = this.resourceForm.controls['scopes'] as FormArray;\r\n\r\n var idx = scopesArray.controls.findIndex(x => x === c);\r\n\r\n if (idx !== -1) {\r\n scopesArray.removeAt(idx);\r\n this.resourceForm.markAsDirty();\r\n this.resourceForm.markAsTouched();\r\n }\r\n }\r\n\r\n\r\n ScopeToevoegen() {\r\n\r\n let scopesArray = this.resourceForm.controls['scopes'] as FormArray;\r\n\r\n var nieuweScope = this.fb.group({\r\n scopeId: [0],\r\n resourceId: [this.resource.resourceId],\r\n description: [this.newScopeForm.value.description],\r\n scopeType: [this.newScopeForm.value.scopeType],\r\n name: [this.newScopeForm.value.name]\r\n });\r\n\r\n nieuweScope.markAsTouched();\r\n nieuweScope.markAsDirty();\r\n\r\n scopesArray.push(nieuweScope);\r\n\r\n this.resourceForm.markAsDirty();\r\n this.resourceForm.markAsTouched();\r\n\r\n this.newScopeForm = this.getNewScopeForm();\r\n }\r\n\r\n\r\n appUsersZoeken() {\r\n\r\n this.appUserSvc.get(this.zoekTerm.value).subscribe(a => this.zoekTermTreffers = a);\r\n }\r\n\r\n toevoegenGekozenBeheerder(event: MatAutocompleteSelectedEvent) {\r\n\r\n console.log(event);\r\n \r\n var bestaandeBeheerder = this.beheerders.find(b => { return b.appUserId === event.option.value });\r\n\r\n if (!bestaandeBeheerder) {\r\n this.resourceSvc.addBeheerder(this.resource.resourceId, event.option.value).subscribe(b => {\r\n this.beheerders = b;\r\n this.zoekTerm.reset();\r\n\r\n });\r\n }\r\n }\r\n\r\n verwijderBeheerder(appUser: AppUser) {\r\n \r\n this.resourceSvc.removeBeheerder(this.resource.resourceId, appUser.appUserId).subscribe(b => {\r\n this.beheerders = b;\r\n });\r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n}\r\n","Beheer Resource\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n edit\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Identity\r\n Api\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n

Scopes

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameDescriptionType
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Identity\r\n Api\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Identity\r\n Api\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n

Beheerders

\r\n
\r\n
\r\n
\r\n {{ b.name }} \r\n
\r\n
\r\n
\r\n

Er zijn geen beheerders gekoppeld

\r\n\r\n \r\n search\r\n \r\n \r\n \r\n {{ au.name }}\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { AuthService, User } from '../services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n templateUrl: './unauthorized.component.html',\r\n styleUrls: ['./unauthorized.component.scss']\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n currentUser: User;\r\n\r\n constructor(private location: Location, private authService: AuthService) {\r\n this.authService.getUser().subscribe(u => { this.currentUser = u; });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public isIngelogd(): boolean {\r\n if (!!this.currentUser && !!this.currentUser.access_token) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public naam(): string {\r\n if (!!this.currentUser && !!this.currentUser.profile && !!this.currentUser.profile['name']) {\r\n return this.currentUser.profile['name'];\r\n } else {\r\n return 'Onbekend';\r\n }\r\n }\r\n\r\n login() {\r\n this.authService.login();\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n Voor het gebruik van deze applicatie dient u in te loggen.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n U bent ingelogd als {{ naam() }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ResourceService } from '../services/resource.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, FormArray, AbstractControl } from '@angular/forms';\r\nimport { Client } from '../models/client';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Observable } from 'rxjs';\r\nimport { map, pluck, concatMap, flatMap, toArray } from 'rxjs/operators';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ClientSecret } from '../models/client-secret';\r\n\r\n@Component({\r\n selector: 'app-client',\r\n templateUrl: './client.component.html',\r\n styleUrls: ['./client.component.scss']\r\n})\r\nexport class ClientComponent implements OnInit {\r\n\r\n client: Client;\r\n clientForm: FormGroup = this.getClientFormGroup(null);\r\n allScopes: string[] = [];\r\n\r\n clientSecrets: ClientSecret[];\r\n\r\n clientSecretsForm: FormGroup = this.getClientSecretFormGroup(null);\r\n nieuwSecretForm: FormGroup = this.getnieuwSecretFormGroup();\r\n\r\n @ViewChild('nieuweUri', { static: true }) nieuweUriInput;\r\n @ViewChild('nieuwePostLogoutUri', { static: true }) nieuwePostLogoutUriInput;\r\n @ViewChild('nieuweOrigin', { static: true }) nieuweOriginInput;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private clientSvc: ClientService,\r\n private resourceSvc: ResourceService,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n const clientId: string = this.route.snapshot.params.clientId;\r\n \r\n if (!clientId) {\r\n\r\n this.client = new Client();\r\n\r\n this.getAllScopes().subscribe(\r\n r => {\r\n this.allScopes = r;\r\n this.clientForm = this.getClientFormGroup(this.client);\r\n }\r\n )\r\n } else {\r\n this.clientSvc.fetch(this.route.snapshot.params.clientId)\r\n .subscribe(c => {\r\n \r\n this.getAllScopes().subscribe(\r\n r => {\r\n this.allScopes = r;\r\n this.client = c\r\n this.clientForm = this.getClientFormGroup(this.client);\r\n\r\n this.clientSvc.getSecrets(c.clientId).subscribe(s => {\r\n this.clientSecrets = s;\r\n this.clientSecretsForm = this.getClientSecretFormGroup(s);\r\n });\r\n }\r\n )\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n getAllScopes(): Observable {\r\n\r\n return this.resourceSvc.get().pipe(\r\n flatMap(x => x),\r\n concatMap(y => y.scopes),\r\n pluck('name'),\r\n map(z => z as string),\r\n toArray()\r\n );\r\n }\r\n\r\n getClientFormGroup(client: Client): FormGroup {\r\n\r\n if (!client || client == null || !client.clientId) {\r\n return this.fb.group({\r\n clientId: [''],\r\n clientName: [''],\r\n enabled: [''],\r\n accessTokenLifetime: [''],\r\n allowedGrantTypes: [''],\r\n allowedScopes: [''],\r\n allowedRedirectUris: this.getRedirectUriArray([]),\r\n allowAccessTokensViaBrowser: [''],\r\n allowedCorsOrigins: this.getCorsOriginArray([]),\r\n absoluteRefreshTokenLifetime: ['2592000'],\r\n slidingRefreshTokenLifetime: ['1296000'],\r\n identityTokenLifetime: ['86000'],\r\n refreshTokenExpiration: [0],\r\n refreshTokenUsage: [1],\r\n updateAccessTokenClaimsOnRefresh: [true],\r\n allowOfflineAccess: [false],\r\n requirePkce: [true],\r\n postLogoutRedirectUris: this.getPostLogoutRedirectUriArray([]),\r\n\r\n \r\n });\r\n } else {\r\n\r\n return this.fb.group({\r\n clientId: [client.clientId],\r\n clientName: [client.clientName],\r\n enabled: [client.enabled],\r\n accessTokenLifetime: [client.accessTokenLifetime],\r\n allowedGrantTypes: [client.allowedGrantTypes],\r\n allowedScopes: [client.allowedScopes.split('|')],\r\n allowAccessTokensViaBrowser: [client.allowAccessTokensViaBrowser],\r\n allowedRedirectUris: this.getRedirectUriArray(client.allowedRedirectUris.split('|')),\r\n allowedCorsOrigins: this.getCorsOriginArray(client.allowedCorsOrigins.split('|')),\r\n absoluteRefreshTokenLifetime: [client.absoluteRefreshTokenLifetime],\r\n slidingRefreshTokenLifetime: [client.slidingRefreshTokenLifetime],\r\n identityTokenLifetime: [client.identityTokenLifetime],\r\n refreshTokenExpiration: [client.refreshTokenExpiration],\r\n refreshTokenUsage: [client.refreshTokenUsage],\r\n updateAccessTokenClaimsOnRefresh: [client.updateAccessTokenClaimsOnRefresh],\r\n allowOfflineAccess: [client.allowOfflineAccess],\r\n requirePkce: [client.requirePkce],\r\n postLogoutRedirectUris: this.getPostLogoutRedirectUriArray(client.postLogoutRedirectUris.split('|')),\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n getRedirectUriArray(uris: string[]): FormArray {\r\n\r\n const a = this.fb.array([]);\r\n\r\n uris.forEach(u => {\r\n a.push(this.fb.group({ allowedRedirectUri: u }));\r\n });\r\n return a;\r\n }\r\n\r\n RedirectUriVerwijderen(e) {\r\n console.log(e);\r\n\r\n const uriArray: FormArray = this.clientForm.get('allowedRedirectUris') as FormArray;\r\n const idx = uriArray.controls.indexOf(e);\r\n\r\n if (idx !== -1) {\r\n uriArray.removeAt(idx);\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n\r\n }\r\n\r\n nieuweUriChanged() {\r\n if (this.nieuweUriInput.nativeElement.value && this.nieuweUriInput.nativeElement.value !== '') {\r\n const uriArray = this.clientForm.controls['allowedRedirectUris'] as FormArray;\r\n uriArray.push(this.fb.group({ allowedRedirectUri: this.nieuweUriInput.nativeElement.value }));\r\n\r\n this.nieuweUriInput.nativeElement.value = '';\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n }\r\n\r\n getPostLogoutRedirectUriArray(uris: string[]): FormArray {\r\n\r\n const a = this.fb.array([]);\r\n\r\n if (uris && !(uris.length === 1 && uris[0] === '')) {\r\n uris.forEach(u => {\r\n a.push(this.fb.group({ allowedPostLogoutRedirectUri: u }));\r\n });\r\n }\r\n\r\n return a;\r\n }\r\n\r\n PostLogoutRedirectUriVerwijderen(e) {\r\n\r\n const uriArray: FormArray = this.clientForm.get('postLogoutRedirectUris') as FormArray;\r\n const idx = uriArray.controls.indexOf(e);\r\n\r\n if (idx !== -1) {\r\n uriArray.removeAt(idx);\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n\r\n }\r\n\r\n nieuwePostLogoutUriChanged() {\r\n if (this.nieuwePostLogoutUriInput.nativeElement.value && this.nieuwePostLogoutUriInput.nativeElement.value !== '') {\r\n const uriArray: FormArray = this.clientForm.get('postLogoutRedirectUris') as FormArray;\r\n uriArray.push(this.fb.group({ allowedPostLogoutRedirectUri: this.nieuwePostLogoutUriInput.nativeElement.value }));\r\n\r\n this.nieuwePostLogoutUriInput.nativeElement.value = '';\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n }\r\n\r\n\r\n getCorsOriginArray(origins: string[]): FormArray {\r\n\r\n const a = this.fb.array([]);\r\n\r\n origins.forEach(u => {\r\n a.push(this.fb.group({ allowedCorsOrigin: u }));\r\n });\r\n return a;\r\n }\r\n\r\n CorsOriginVerwijderen(e) {\r\n\r\n const originArray: FormArray = this.clientForm.get('allowedCorsOrigins') as FormArray;\r\n const idx = originArray.controls.indexOf(e);\r\n\r\n if (idx !== -1) {\r\n originArray.removeAt(idx);\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n\r\n }\r\n\r\n nieuweOriginChanged() {\r\n if (this.nieuweOriginInput.nativeElement.value && this.nieuweOriginInput.nativeElement.value !== '') {\r\n const originArray: FormArray = this.clientForm.get('allowedCorsOrigins') as FormArray;\r\n originArray.push(this.fb.group({ allowedCorsOrigin: this.nieuweOriginInput.nativeElement.value }));\r\n\r\n this.nieuweOriginInput.nativeElement.value = '';\r\n this.clientForm.markAsDirty();\r\n this.clientForm.markAsTouched();\r\n }\r\n }\r\n\r\n RecordOpslaan() {\r\n console.log(this.clientForm);\r\n console.log(this.clientForm.value.postLogoutRedirectUris);\r\n\r\n if (this.clientForm.touched) {\r\n\r\n if (!this.client.clientId) {\r\n this.client.clientId = this.clientForm.value.clientId;\r\n }\r\n\r\n this.client.clientName = this.clientForm.value.clientName;\r\n this.client.enabled = this.clientForm.value.enabled;\r\n this.client.allowAccessTokensViaBrowser = this.clientForm.value.allowAccessTokensViaBrowser;\r\n this.client.allowedGrantTypes = this.clientForm.value.allowedGrantTypes;\r\n this.client.accessTokenLifetime = this.clientForm.value.accessTokenLifetime;\r\n this.client.allowedScopes = (this.clientForm.value.allowedScopes as string[]).join('|');\r\n\r\n this.client.requirePkce = this.clientForm.value.requirePkce;\r\n this.client.allowOfflineAccess = this.clientForm.value.allowOfflineAccess;\r\n this.client.updateAccessTokenClaimsOnRefresh = this.clientForm.value.updateAccessTokenClaimsOnRefresh;\r\n this.client.refreshTokenUsage = this.clientForm.value.refreshTokenUsage;\r\n this.client.refreshTokenExpiration = this.clientForm.value.refreshTokenExpiration;\r\n this.client.identityTokenLifetime = this.clientForm.value.identityTokenLifetime;\r\n this.client.slidingRefreshTokenLifetime = this.clientForm.value.slidingRefreshTokenLifetime;\r\n this.client.absoluteRefreshTokenLifetime = this.clientForm.value.absoluteRefreshTokenLifetime;\r\n\r\n const uris: string[] = [];\r\n (this.clientForm.value.allowedRedirectUris as object[]).forEach(a => uris.push(a['allowedRedirectUri']));\r\n this.client.allowedRedirectUris = uris.join('|');\r\n\r\n const postLogoutUris: string[] = [];\r\n (this.clientForm.value.postLogoutRedirectUris as object[]).forEach(a => {\r\n postLogoutUris.push(a['allowedPostLogoutRedirectUri']);\r\n });\r\n this.client.postLogoutRedirectUris = postLogoutUris.join('|');\r\n\r\n const origins: string[] = [];\r\n (this.clientForm.value.allowedCorsOrigins as object[]).forEach(a => origins.push(a['allowedCorsOrigin']));\r\n this.client.allowedCorsOrigins = origins.join('|');\r\n\r\n this.clientSvc.save(this.client).subscribe(c => {\r\n console.log(c);\r\n this.clientForm.markAsPristine();\r\n this.clientForm.markAsUntouched();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de client');\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n getClientSecretFormGroup(clientSecrets: ClientSecret[]): FormGroup {\r\n\r\n const secretControls = this.fb.array([]);\r\n\r\n if (clientSecrets) {\r\n clientSecrets.forEach(c => {\r\n secretControls.push(this.fb.group({\r\n clientSecretId: [c.clientSecretId],\r\n description: [c.description],\r\n value: [c.value],\r\n validFrom: [c.validFrom],\r\n validUntil: [c.validUntil]\r\n }));\r\n });\r\n }\r\n\r\n return this.fb.group({\r\n secrets: secretControls\r\n });\r\n }\r\n\r\n getnieuwSecretFormGroup(): FormGroup {\r\n\r\n return this.fb.group({\r\n clientSecretId: [0],\r\n description: [''],\r\n value: [''],\r\n validFrom: ['2000-01-01'],\r\n validUntil: ['2100-01-01']\r\n });\r\n }\r\n\r\n SecretsOpslaan() {\r\n console.log(this.clientSecretsForm);\r\n\r\n if (this.clientSecretsForm.touched) {\r\n\r\n const secretsArray = this.clientSecretsForm.controls['secrets'] as FormArray;\r\n secretsArray.controls.forEach(c => {\r\n if (c.touched) {\r\n\r\n const cs: ClientSecret = {\r\n clientSecretId: c.value.clientSecretId,\r\n clientId: c.value.clientId,\r\n description: c.value.description,\r\n value: c.value.value,\r\n validFrom: c.value.validFrom,\r\n validUntil: c.value.validUntil\r\n };\r\n\r\n this.clientSvc.saveSecret(cs).subscribe(s => {\r\n console.log(s);\r\n });\r\n \r\n }\r\n });\r\n\r\n // check verwijderde secrets\r\n\r\n const bestaandeSecrets: ClientSecret[] = secretsArray.value as ClientSecret[];\r\n this.clientSecrets.forEach(s => {\r\n \r\n if (bestaandeSecrets.findIndex(x => x.clientSecretId === s.clientSecretId) === -1) {\r\n this.clientSvc.deleteSecret(s).subscribe(d => {\r\n console.log(d);\r\n });\r\n }\r\n });\r\n\r\n this.clientSecretsForm.markAsPristine();\r\n this.clientSecretsForm.markAsUntouched();\r\n }\r\n }\r\n\r\n SecretToevoegen() {\r\n \r\n const secretsArray = this.clientSecretsForm.controls['secrets'] as FormArray;\r\n\r\n const nieuwSecret = this.fb.group({\r\n clientId: this.client.clientId,\r\n clientSecretId: [this.nieuwSecretForm.value.clientSecretId],\r\n description: [this.nieuwSecretForm.value.description],\r\n value: [this.nieuwSecretForm.value.value],\r\n validFrom: [this.nieuwSecretForm.value.validFrom],\r\n validUntil: [this.nieuwSecretForm.value.validUntil]\r\n });\r\n\r\n nieuwSecret.markAsTouched();\r\n nieuwSecret.markAsDirty();\r\n\r\n secretsArray.controls.push(nieuwSecret);\r\n\r\n this.clientSecretsForm.markAsDirty();\r\n this.clientSecretsForm.markAsTouched();\r\n\r\n this.nieuwSecretForm = this.getnieuwSecretFormGroup();\r\n }\r\n\r\n SecretVerwijderen(c: AbstractControl) {\r\n\r\n const secretsArray = this.clientSecretsForm.controls['secrets'] as FormArray;\r\n const idx = secretsArray.controls.findIndex(x => x === c);\r\n\r\n if (idx !== -1) {\r\n secretsArray.removeAt(idx);\r\n this.clientSecretsForm.markAsDirty();\r\n this.clientSecretsForm.markAsTouched();\r\n }\r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n}\r\n","Beheer Client\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n edit\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Client is actief\r\n Client is NIET actief\r\n \r\n \r\n \r\n \r\n Toegestaan\r\n NIET toestaan\r\n \r\n \r\n\r\n \r\n \r\n implicit\r\n client_credentials\r\n authorization_code\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n Sliding\r\n Absolute\r\n \r\n \r\n\r\n \r\n \r\n ReUse\r\n OneTimeOnly\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n Claims bijwerken\r\n Claims niet bijwerken\r\n \r\n \r\n\r\n \r\n \r\n Toegestaan\r\n Niet toegstaan\r\n \r\n \r\n\r\n \r\n \r\n PKCE vereist\r\n PKCE niet vereist\r\n \r\n \r\n\r\n\r\n \r\n Allowed Scopes\r\n \r\n {{ s }}\r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
Toegestane redirect uri's
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
Post logout redirect Uri's
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n
Toegestane CORS origins
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n

Client secrets

\r\n \r\n edit\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DescriptionValueGeldig vanGeldig tot
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { ClaimMapping } from '../models/claim-mapping';\r\nimport { CustomHttpParamEncoder } from './custom-http-param-encoder';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClaimMappingService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get(identityProviderId: number, identityProviderSubClaimValue: string) {\r\n\r\n let params = new HttpParams({ encoder: new CustomHttpParamEncoder() })\r\n .append('identityProviderId', identityProviderId ? identityProviderId.toString() : '')\r\n .append('identityProviderSubClaimValue', identityProviderSubClaimValue ? identityProviderSubClaimValue : '');\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/ClaimMapping', { params: params });\r\n }\r\n\r\n save(claimMapping: ClaimMapping) {\r\n\r\n if (claimMapping.claimMappingId) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/ClaimMapping/' + claimMapping.claimMappingId, claimMapping);\r\n } else {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/ClaimMapping', claimMapping);\r\n }\r\n }\r\n\r\n delete(claimMapping: ClaimMapping) {\r\n return this.http.delete(this.appConfigSvc.getConfig().apiRoot + '/ClaimMapping/' + claimMapping.claimMappingId)\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { StartComponent } from './start/start.component';\r\nimport { ToolbarComponent } from './toolbar/toolbar.component';\r\nimport { AppConfigService } from './services/app-config.service';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { TokenInterceptor } from './services/token.interceptor';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { AuthService } from './services/auth.service';\r\nimport { MaterialModule } from './material.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { IdentityProvidersComponent } from './identity-providers/identity-providers.component';\r\nimport { IdentityProviderComponent } from './identity-provider/identity-provider.component';\r\nimport { ResourcesComponent } from './resources/resources.component';\r\nimport { ResourceComponent } from './resource/resource.component';\r\nimport { AppUsersComponent } from './app-users/app-users.component';\r\nimport { AppUserComponent } from './app-user/app-user.component';\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { ClientsComponent } from './clients/clients.component';\r\nimport { ClientComponent } from './client/client.component';\r\nimport { BeheerSettingsComponent, AppSettingDialog } from './beheer-settings/beheer-settings.component';\r\nimport { UnauthorizedComponent } from './unauthorized/unauthorized.component';\r\nimport { DeviceCodeRpsComponent } from './device-code-rps/device-code-rps.component';\r\nimport { DeviceCodeRpComponent } from './device-code-rp/device-code-rp.component';\r\nimport { DeviceTokensComponent } from './device-tokens/device-tokens.component';\r\nimport { DeviceTokenComponent } from './device-token/device-token.component';\r\n\r\nexport function init_app(appConfig: AppConfigService) {\r\n return () => appConfig.loadAppConfig();\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n StartComponent,\r\n ToolbarComponent,\r\n IdentityProvidersComponent,\r\n IdentityProviderComponent,\r\n ResourcesComponent,\r\n ResourceComponent,\r\n AppUsersComponent,\r\n AppUserComponent,\r\n ClientsComponent,\r\n ClientComponent,\r\n BeheerSettingsComponent,\r\n AppSettingDialog,\r\n UnauthorizedComponent,\r\n DeviceCodeRpsComponent,\r\n DeviceCodeRpComponent,\r\n DeviceTokensComponent,\r\n DeviceTokenComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n MaterialModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n FlexLayoutModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n MomentModule\r\n ],\r\n providers: [\r\n AppConfigService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: init_app,\r\n multi: true,\r\n deps: [AppConfigService]\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n },\r\n AuthGuardService,\r\n AuthService,\r\n {\r\n provide: MAT_DATE_LOCALE,\r\n useValue: 'nl-NL'\r\n }\r\n ],\r\n bootstrap: [AppComponent],\r\n entryComponents: [AppSettingDialog]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { ClientService } from '../services/client.service';\r\nimport { Client } from '../models/client';\r\n\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './clients.component.html',\r\n styleUrls: ['./clients.component.scss']\r\n})\r\nexport class ClientsComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['clientId', 'clientName', 'enabled'];\r\n\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private clientSvc: ClientService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.clientSvc.get().subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n\r\n }\r\n\r\n public Details(client: Client) {\r\n this.router.navigate(['client', { clientId: client.clientId }]);\r\n }\r\n\r\n public RecordToevoegen() {\r\n this.router.navigate(['client']);\r\n }\r\n\r\n}\r\n","Beheer Clients\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ClientId\r\n {{ x.clientId }}\r\n Naam\r\n {{ x.clientName }}\r\n Actief\r\n {{ x.enabled }}\r\n
\r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DeviceCodeIdpRpService } from '../services/device-code-idp-rp.service';\r\nimport { DeviceCodeIdpRp } from '../models/device-code-idp-rp';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-device-code-rps',\r\n templateUrl: './device-code-rps.component.html',\r\n styleUrls: ['./device-code-rps.component.scss']\r\n})\r\nexport class DeviceCodeRpsComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['naam', 'clientId', 'redirectUri'];\r\n\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private deviceCodeRpSvc: DeviceCodeIdpRpService,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.deviceCodeRpSvc.get().subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n public Details(rp: DeviceCodeIdpRp) {\r\n this.router.navigate(['devicecodeidprp', { deviceCodeIdpRpId: rp.deviceCodeIdpRpId }]);\r\n }\r\n\r\n public RecordToevoegen() {\r\n this.router.navigate(['devicecodeidprp']);\r\n }\r\n}\r\n","\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Naam\r\n {{ x.naam }}\r\n clientId\r\n {{ x.client_Id }}\r\n Redirect\r\n {{ x.redirectUri }}\r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { DeviceCodeIdpRp } from '../models/device-code-idp-rp';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceCodeIdpRpService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/DeviceCodeIdpRp');\r\n }\r\n\r\n fetch(deviceCodeIdpRpId: number) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/DeviceCodeIdpRp/' + deviceCodeIdpRpId);\r\n }\r\n\r\n save(rp: DeviceCodeIdpRp) {\r\n if (rp.deviceCodeIdpRpId) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/DeviceCodeIdpRp/' + rp.deviceCodeIdpRpId, rp);\r\n } else {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/DeviceCodeIdpRp', rp);\r\n }\r\n }\r\n\r\n delete(deviceCodeIdpRpId: number) {\r\n return this.http.delete(this.appConfigSvc.getConfig().apiRoot + '/DeviceCodeIdpRp/' + deviceCodeIdpRpId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UserManager, UserManagerSettings, User } from 'oidc-client';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { AppConfig } from '../models/app-config';\r\nimport { Observable, from } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport { User };\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n private static _userManager: UserManager;\r\n private user: User;\r\n\r\n\r\n constructor(appConfigSvc: AppConfigService) {\r\n\r\n if (!AuthService._userManager) {\r\n\r\n var appConfig = appConfigSvc.getConfig();\r\n\r\n var settings = {\r\n authority: appConfig.oidcAuthority,\r\n client_id: appConfig.oidcClientId,\r\n redirect_uri: appConfig.oidcRedirectUri,\r\n silent_redirect_uri: appConfig.oidcSilentRedirectUri,\r\n post_logout_redirect_uri: appConfig.oidcPostLogoutRedirectUri,\r\n response_type: 'id_token token',\r\n scope: appConfig.oidcScopes,\r\n automaticSilentRenew: true\r\n };\r\n\r\n AuthService._userManager = new UserManager(settings);\r\n\r\n } else {\r\n console.log('usermanager al geladen');\r\n }\r\n\r\n }\r\n\r\n\r\n getUser(): Observable {\r\n return from(AuthService._userManager.getUser());\r\n }\r\n\r\n isLoggedInObs(): Observable {\r\n return from(AuthService._userManager.getUser()).pipe(map((user) => {\r\n if (user) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }));\r\n }\r\n\r\n public login(): Promise {\r\n return AuthService._userManager.signinRedirect();\r\n }\r\n\r\n public renewToken(): Promise {\r\n return AuthService._userManager.signinSilent().catch((err) => {\r\n\r\n console.log('Failed silent renewal of token');\r\n console.log(err);\r\n\r\n AuthService._userManager.signinRedirect();\r\n return null;\r\n });\r\n }\r\n\r\n public logout(): Promise {\r\n return AuthService._userManager.signoutRedirect();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Resource } from '../models/resource';\r\nimport { AppUser } from '../models/app-user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResourceService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Resource');\r\n }\r\n\r\n fetch(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Resource/' + id);\r\n }\r\n\r\n getBeheerders(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/Resource/' + id + '/AppUsers');\r\n }\r\n\r\n addBeheerder(resourceId: number, appUserId: number) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/Resource/' + resourceId + '/AppUsers/' + appUserId, appUserId);\r\n }\r\n\r\n removeBeheerder(resourceId: number, appUserId: number) {\r\n return this.http.delete(this.appConfigSvc.getConfig().apiRoot + '/Resource/' + resourceId + '/AppUsers/' + appUserId);\r\n }\r\n\r\n\r\n save(resource: Resource) {\r\n if (!resource.resourceId) {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/Resource', resource);\r\n } else {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/Resource/' + resource.resourceId, resource);\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n\r\n HttpErrorResponse\r\n} from '@angular/common/http';\r\nimport { AuthService, User } from './auth.service';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { mergeMap, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n constructor( public auth: AuthService, private router: Router ) {\r\n }\r\n\r\n handleAccessDeniedError( e: HttpErrorResponse ) : Observable {\r\n if ( e.status === 401 ) {\r\n this.auth.isLoggedInObs().subscribe( loggedIn => {\r\n\r\n if ( loggedIn ) {\r\n this.auth.renewToken();\r\n } else {\r\n this.auth.login();\r\n }\r\n \r\n } );\r\n }\r\n\r\n return throwError(e);\r\n }\r\n\r\n intercept( request: HttpRequest, next: HttpHandler ): Observable> {\r\n\r\n return this.auth.getUser().pipe( mergeMap((user: User) => {\r\n\r\n if ( user ) {\r\n let headers = request.headers\r\n .set( 'Cache-Control', 'no-cache' )\r\n .set( 'Pragma', 'no-cache' )\r\n .set( 'If-Modified-Since', 'Mon, 26 Jul 1997 05:00:00 GMT' )\r\n .set( 'Authorization', `Bearer ${user.access_token}` );\r\n\r\n request = request.clone( { headers } );\r\n }\r\n\r\n return next.handle(request).pipe(catchError(e => this.handleAccessDeniedError(e)));\r\n } ));\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AppUser } from '../models/app-user';\r\nimport { AppUserService } from '../services/app-user.service';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-app-users',\r\n templateUrl: './app-users.component.html',\r\n styleUrls: ['./app-users.component.scss']\r\n})\r\nexport class AppUsersComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['appUserId', 'name','lastLoginDateTime', 'identityProviderCaption', 'isDisabled', 'isValid'];\r\n \r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n filterForm: FormGroup = this.fb.group({\r\n Naam: ['']\r\n \r\n });\r\n\r\n constructor(\r\n private appUserSvc: AppUserService,\r\n private router: Router,\r\n private fb: FormBuilder) {\r\n }\r\n\r\n ngOnInit() {\r\n this.filterGewijzigd();\r\n }\r\n\r\n public Details(appUser: AppUser) {\r\n this.router.navigate(['appuser', { appUserId: appUser.appUserId }]);\r\n }\r\n\r\n\r\n filterGewijzigd() {\r\n \r\n let gezochteNaam: string = this.filterForm.value.Naam;\r\n\r\n this.appUserSvc.get(gezochteNaam).subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n \r\n}\r\n","Beheer Gebruikers\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n search\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Id\r\n {{ x.appUserId }}\r\n Naam\r\n {{ x.name }}\r\n Laatste login\r\n {{ x.lastLoginDateTime | amDateFormat:'YYYY-MM-DD HH:mm:ss' }}\r\n Idp\r\n {{ x.identityProviderCaption }}\r\n Disabled\r\n {{ x.isDisabled }}\r\n Geldig\r\n {{ (x.isValid) }}\r\n
\r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport { Resource } from '../models/resource';\r\nimport { ResourceService } from '../services/resource.service';\r\n\r\n@Component({\r\n selector: 'app-resources',\r\n templateUrl: './resources.component.html',\r\n styleUrls: ['./resources.component.scss']\r\n})\r\nexport class ResourcesComponent implements OnInit {\r\n\r\n dataSource = new MatTableDataSource();\r\n displayedColumns: string[] = ['name', 'resourceType'];\r\n\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n constructor(private resourceSvc: ResourceService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n\r\n this.resourceSvc.get().subscribe(data => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n });\r\n }\r\n\r\n public Details(resource: Resource) {\r\n this.router.navigate(['resource', { resourceId: resource.resourceId }]);\r\n }\r\n\r\n public RecordToevoegen() {\r\n this.router.navigate(['resource', { resourceId: 0 }]);\r\n }\r\n}\r\n","Beheer Resources\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Naam\r\n {{ x.name }}\r\n Type\r\n {{ x.resourceType === 0 ? 'Identity' : 'Api' }}\r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { AppUser } from '../models/app-user';\r\nimport { PersistedGrantInfo } from '../models/persisted-grant-info';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppUserService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get(naam: string) {\r\n\r\n let params = new HttpParams()\r\n .append('naam', naam ? naam : '');\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppUser', { params: params });\r\n }\r\n\r\n fetch(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppUser/' + id);\r\n }\r\n\r\n audit(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppUser/' + id + '/audit');\r\n }\r\n\r\n grants(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppUser/' + id + '/grants');\r\n }\r\n \r\n save(appUser: AppUser) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/AppUser/' + appUser.appUserId, appUser);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-start',\r\n templateUrl: './start.component.html',\r\n styleUrls: ['./start.component.scss']\r\n})\r\nexport class StartComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { StartComponent } from './start/start.component';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { IdentityProvidersComponent } from './identity-providers/identity-providers.component';\r\nimport { IdentityProviderComponent } from './identity-provider/identity-provider.component';\r\nimport { ResourcesComponent } from './resources/resources.component';\r\nimport { ResourceComponent } from './resource/resource.component';\r\nimport { AppUsersComponent } from './app-users/app-users.component';\r\nimport { AppUserComponent } from './app-user/app-user.component';\r\nimport { ClientsComponent } from './clients/clients.component';\r\nimport { ClientComponent } from './client/client.component';\r\nimport { BeheerSettingsComponent } from './beheer-settings/beheer-settings.component';\r\nimport { UnauthorizedComponent } from './unauthorized/unauthorized.component';\r\nimport { DeviceCodeRpsComponent } from './device-code-rps/device-code-rps.component';\r\nimport { DeviceCodeRpComponent } from './device-code-rp/device-code-rp.component';\r\nimport { DeviceTokensComponent } from './device-tokens/device-tokens.component';\r\nimport { DeviceTokenComponent } from './device-token/device-token.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'unauthorized', component: UnauthorizedComponent },\r\n { path: 'logout', component: UnauthorizedComponent },\r\n { path: '', component: StartComponent, canActivate: [AuthGuardService] },\r\n { path: 'appusers', component: AppUsersComponent, canActivate: [AuthGuardService] },\r\n { path: 'appuser', component: AppUserComponent, canActivate: [AuthGuardService] },\r\n { path: 'resources', component: ResourcesComponent, canActivate: [AuthGuardService] },\r\n { path: 'resource', component: ResourceComponent, canActivate: [AuthGuardService] },\r\n { path: 'clients', component: ClientsComponent, canActivate: [AuthGuardService] },\r\n { path: 'client', component: ClientComponent, canActivate: [AuthGuardService] },\r\n { path: 'beheeridps', component: IdentityProvidersComponent, canActivate: [AuthGuardService] },\r\n { path: 'beheeridp', component: IdentityProviderComponent, canActivate: [AuthGuardService] },\r\n { path: 'settings', component: BeheerSettingsComponent, canActivate: [AuthGuardService] },\r\n { path: 'devicecodeidprps', component: DeviceCodeRpsComponent, canActivate: [AuthGuardService] },\r\n { path: 'devicecodeidprp', component: DeviceCodeRpComponent, canActivate: [AuthGuardService] },\r\n { path: 'devicetokens', component: DeviceTokensComponent, canActivate: [AuthGuardService] },\r\n { path: 'devicetoken', component: DeviceTokenComponent, canActivate: [AuthGuardService] }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule( {\r\n imports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule\r\n ],\r\n exports: [\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule\r\n ]\r\n} )\r\nexport class MaterialModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DeviceCodeIdpRp } from '../models/device-code-idp-rp';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DeviceCodeIdpRpService } from '../services/device-code-idp-rp.service';\r\n\r\n@Component({\r\n selector: 'app-device-code-rp',\r\n templateUrl: './device-code-rp.component.html',\r\n styleUrls: ['./device-code-rp.component.scss']\r\n})\r\nexport class DeviceCodeRpComponent implements OnInit {\r\n\r\n rp: DeviceCodeIdpRp;\r\n rpForm: FormGroup = this.getRpFormGroup(null);\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private deviceCodeRpSvc: DeviceCodeIdpRpService,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n ngOnInit() {\r\n let deviceCodeIdpRpId: string = this.route.snapshot.params.deviceCodeIdpRpId;\r\n\r\n if (!deviceCodeIdpRpId) {\r\n\r\n this.rp = new DeviceCodeIdpRp();\r\n\r\n this.rpForm = this.getRpFormGroup(this.rp);\r\n\r\n } else {\r\n this.deviceCodeRpSvc.fetch(Number(deviceCodeIdpRpId))\r\n .subscribe(c => {\r\n this.rp = c\r\n this.rpForm = this.getRpFormGroup(this.rp);\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n getRpFormGroup(rp: DeviceCodeIdpRp): FormGroup {\r\n\r\n if (!rp) {\r\n return this.fb.group({\r\n deviceCodeIdpRpId: [''],\r\n naam: [''],\r\n client_Id: [''],\r\n client_Secret: [''],\r\n redirectUri: ['']\r\n });\r\n } else {\r\n\r\n return this.fb.group({\r\n deviceCodeIdpRpId: [rp.deviceCodeIdpRpId],\r\n naam: [rp.naam],\r\n client_Id: [rp.client_Id],\r\n client_Secret: [rp.client_Secret],\r\n redirectUri: [rp.redirectUri]\r\n });\r\n\r\n }\r\n }\r\n\r\n RecordOpslaan() {\r\n \r\n\r\n if (this.rpForm.touched) {\r\n\r\n this.rp.naam = this.rpForm.value.naam;\r\n this.rp.client_Id = this.rpForm.value.client_Id;\r\n this.rp.client_Secret = this.rpForm.value.client_Secret;\r\n this.rp.redirectUri = this.rpForm.value.redirectUri;\r\n\r\n this.deviceCodeRpSvc.save(this.rp).subscribe(c => {\r\n\r\n if (!this.rp.deviceCodeIdpRpId) {\r\n this.rp.deviceCodeIdpRpId = c.deviceCodeIdpRpId;\r\n }\r\n\r\n this.rpForm.markAsPristine();\r\n this.rpForm.markAsUntouched();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de relying party.');\r\n })\r\n\r\n }\r\n\r\n }\r\n\r\n RecordVerwijderen() {\r\n\r\n var akkoord = confirm('Record verwijderen?');\r\n\r\n if (akkoord && this.rp.deviceCodeIdpRpId) {\r\n this.deviceCodeRpSvc.delete(this.rp.deviceCodeIdpRpId).subscribe(r => {\r\n this.router.navigate(['devicecodeidprps']);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het verwijderen van de relying party.');\r\n });\r\n }\r\n }\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n}\r\n","\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n edit\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { HttpParameterCodec } from '@angular/common/http';\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n public encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n public encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n public decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n public decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { IdentityProvider } from '../models/identity-provider';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IdentityProviderService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n get() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/IdentityProvider');\r\n }\r\n\r\n fetch(id) {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/IdentityProvider/' + id);\r\n }\r\n\r\n save(idp: IdentityProvider) {\r\n\r\n if (idp.identityProviderId) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/IdentityProvider/' + idp.identityProviderId, idp);\r\n } else {\r\n return this.http.post(this.appConfigSvc.getConfig().apiRoot + '/IdentityProvider', idp);\r\n }\r\n \r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { IdentityProvider } from '../models/identity-provider';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { IdentityProviderService } from '../services/identity-provider.service';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-identity-provider',\r\n templateUrl: './identity-provider.component.html',\r\n styleUrls: ['./identity-provider.component.scss']\r\n})\r\nexport class IdentityProviderComponent implements OnInit {\r\n\r\n identityProvider: IdentityProvider;\r\n identityProviderForm: FormGroup;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private identityProviderSvc: IdentityProviderService,\r\n private snackBar: MatSnackBar\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n let identityProviderId: number = +this.route.snapshot.params.identityProviderId;\r\n\r\n if (identityProviderId) {\r\n this.identityProviderSvc.fetch(identityProviderId)\r\n .subscribe((i: IdentityProvider) => {\r\n this.identityProvider = i;\r\n this.identityProviderForm = this.getFormGroup(this.identityProvider);\r\n })\r\n } else {\r\n this.identityProvider = {\r\n identityProviderId: 0,\r\n authenticationType: 'Google',\r\n caption: '',\r\n signInId: '',\r\n signInSecret: '',\r\n metadataAddress: '',\r\n redirectUri: '',\r\n postLogoutRedirect: '',\r\n disableNewUsers: true,\r\n isActive: true\r\n }\r\n this.identityProviderForm = this.getFormGroup(this.identityProvider);\r\n }\r\n \r\n }\r\n \r\n getFormGroup(idp: IdentityProvider): FormGroup {\r\n return this.fb.group({\r\n identityProviderId: [idp.identityProviderId],\r\n caption: [idp.caption, Validators.required],\r\n authenticationType: [idp.authenticationType, Validators.required],\r\n signInId: [idp.signInId, Validators.required],\r\n signInSecret: [idp.signInSecret, Validators.required],\r\n redirectUri: [idp.redirectUri],\r\n metadataAddress: [idp.metadataAddress],\r\n postLogoutRedirect: [idp.postLogoutRedirect],\r\n disableNewUsers: [idp.disableNewUsers],\r\n isActive: [idp.isActive]\r\n });\r\n }\r\n\r\n RecordOpslaan() {\r\n\r\n this.identityProviderForm.updateValueAndValidity();\r\n\r\n if (this.identityProviderForm.touched && this.identityProviderForm.valid) {\r\n this.identityProvider.caption = this.identityProviderForm.value.caption;\r\n this.identityProvider.authenticationType = this.identityProviderForm.value.authenticationType;\r\n this.identityProvider.signInId = this.identityProviderForm.value.signInId;\r\n this.identityProvider.signInSecret = this.identityProviderForm.value.signInSecret;\r\n this.identityProvider.redirectUri = this.identityProviderForm.value.redirectUri;\r\n this.identityProvider.metadataAddress = this.identityProviderForm.value.metadataAddress;\r\n this.identityProvider.postLogoutRedirect = this.identityProviderForm.value.postLogoutRedirect;\r\n this.identityProvider.disableNewUsers = this.identityProviderForm.value.disableNewUsers;\r\n this.identityProvider.isActive = this.identityProviderForm.value.isActive;\r\n\r\n this.identityProviderSvc.save(this.identityProvider).subscribe(a => {\r\n console.log(a);\r\n this.identityProviderForm.markAsPristine();\r\n this.identityProviderForm.markAsUntouched();\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van de provider');\r\n });\r\n\r\n }\r\n \r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n\r\n}\r\n","Beheer Identityprovider\r\n\r\n
\r\n
\r\n \r\n edit\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Google\r\n Federation\r\n Microsoft\r\n OpenIdConnect\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n Nieuwe users zijn disabled\r\n Nieuwe users zijn direct actief\r\n \r\n \r\n \r\n \r\n Ja\r\n Nee\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { AppSetting } from '../models/app-setting';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppSettingService {\r\n\r\n constructor(private http: HttpClient, private appConfigSvc: AppConfigService) { }\r\n\r\n load() {\r\n return this.http.get(this.appConfigSvc.getConfig().apiRoot + '/AppSetting');\r\n }\r\n\r\n save(appSetting: AppSetting) {\r\n return this.http.put(this.appConfigSvc.getConfig().apiRoot + '/AppSetting/' + appSetting.appSettingId, appSetting);\r\n }\r\n\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DeviceToken } from '../models/device-token';\r\nimport { DeviceTokenService } from '../services/device-token.service';\r\n\r\n@Component({\r\n selector: 'app-device-token',\r\n templateUrl: './device-token.component.html',\r\n styleUrls: ['./device-token.component.scss']\r\n})\r\nexport class DeviceTokenComponent implements OnInit {\r\n\r\n device: DeviceToken;\r\n deviceForm: FormGroup = this.getDeviceFormGroup(null);\r\n\r\n @ViewChild('naamInput', { static: true }) naamInput: ElementRef;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private deviceTokenSvc: DeviceTokenService,\r\n private snackBar: MatSnackBar\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n const deviceTokenId: string = this.route.snapshot.params.deviceTokenId;\r\n\r\n if (!deviceTokenId) {\r\n\r\n this.device = new DeviceToken();\r\n this.device.geldig = true;\r\n\r\n this.deviceForm = this.getDeviceFormGroup(this.device);\r\n this.naamInput.nativeElement.focus();\r\n\r\n } else {\r\n this.deviceTokenSvc.fetch(Number(deviceTokenId))\r\n .subscribe(c => {\r\n this.device = c\r\n this.deviceForm = this.getDeviceFormGroup(this.device);\r\n\r\n });\r\n }\r\n }\r\n\r\n getDeviceFormGroup(token: DeviceToken): FormGroup {\r\n\r\n if (!token) {\r\n return this.fb.group({\r\n deviceTokenId: [''],\r\n naam: [''],\r\n passkey: [''],\r\n tokenStatus: [''],\r\n geldig: ['']\r\n });\r\n } else {\r\n\r\n return this.fb.group({\r\n deviceTokenId: [token.deviceTokenId],\r\n naam: [token.naam],\r\n passkey: [token.passkey],\r\n tokenStatus: [token.tokenStatus],\r\n geldig: [token.geldig]\r\n });\r\n\r\n }\r\n }\r\n\r\n RecordOpslaan() {\r\n\r\n if (this.deviceForm.touched) {\r\n\r\n this.device.naam = this.deviceForm.value.naam;\r\n this.device.geldig = this.deviceForm.value.geldig;\r\n\r\n this.deviceTokenSvc.save(this.device).subscribe(c => {\r\n\r\n this.device = c;\r\n this.deviceForm = this.getDeviceFormGroup(this.device);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het opslaan van het device.');\r\n })\r\n }\r\n }\r\n\r\n RecordVerwijderen() {\r\n\r\n const akkoord = confirm('Record verwijderen?');\r\n\r\n if (akkoord && this.device.deviceTokenId) {\r\n this.deviceTokenSvc.delete(this.device.deviceTokenId).subscribe(r => {\r\n this.router.navigate(['devicetokens']);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het verwijderen van het device.');\r\n });\r\n }\r\n }\r\n\r\n Loskoppelen() {\r\n\r\n this.deviceTokenSvc.ontkoppel(Number(this.device.deviceTokenId))\r\n .subscribe(c => {\r\n this.device = c\r\n this.deviceForm = this.getDeviceFormGroup(this.device);\r\n },\r\n error => {\r\n this.showErrorToast(error, 'Fout bij het ontkoppelen van het device.');\r\n });\r\n }\r\n\r\n showErrorToast(error: any, melding: string) {\r\n\r\n let tekst = melding;\r\n\r\n if (!tekst && error.message) {\r\n tekst += '(' + error.message + ')';\r\n }\r\n\r\n this.snackBar.open(tekst, null, { duration: 3000 });\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n edit\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Geldig\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n"]}