UI: fixed oauth2 client lists not updating with values
This commit is contained in:
parent
dba36a8e5a
commit
3eb7efe0ad
@ -81,7 +81,7 @@ export class ClientsTableConfigResolver implements Resolve<EntityTableConfig<OAu
|
|||||||
this.config.entitiesFetchFunction = pageLink => this.oauth2Service.findTenantOAuth2ClientInfos(pageLink);
|
this.config.entitiesFetchFunction = pageLink => this.oauth2Service.findTenantOAuth2ClientInfos(pageLink);
|
||||||
this.config.loadEntity = id => this.oauth2Service.getOAuth2ClientById(id.id);
|
this.config.loadEntity = id => this.oauth2Service.getOAuth2ClientById(id.id);
|
||||||
this.config.saveEntity = client => {
|
this.config.saveEntity = client => {
|
||||||
return this.oauth2Service.saveOAuth2Client(client as OAuth2Client);
|
return this.oauth2Service.saveOAuth2Client(client);
|
||||||
}
|
}
|
||||||
this.config.deleteEntity = id => this.oauth2Service.deleteOauth2Client(id.id);
|
this.config.deleteEntity = id => this.oauth2Service.deleteOauth2Client(id.id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import {
|
|||||||
EntityTableColumn,
|
EntityTableColumn,
|
||||||
EntityTableConfig
|
EntityTableConfig
|
||||||
} from '@home/models/entity/entities-table-config.models';
|
} from '@home/models/entity/entities-table-config.models';
|
||||||
import { Domain, DomainInfo } from '@shared/models/oauth2.models';
|
import { DomainInfo } from '@shared/models/oauth2.models';
|
||||||
import { UtilsService } from '@core/services/utils.service';
|
import { UtilsService } from '@core/services/utils.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { DatePipe } from '@angular/common';
|
import { DatePipe } from '@angular/common';
|
||||||
@ -33,6 +33,7 @@ import { DomainComponent } from '@home/pages/admin/oauth2/domains/domain.compone
|
|||||||
import { isEqual } from '@core/utils';
|
import { isEqual } from '@core/utils';
|
||||||
import { DomainTableHeaderComponent } from '@home/pages/admin/oauth2/domains/domain-table-header.component';
|
import { DomainTableHeaderComponent } from '@home/pages/admin/oauth2/domains/domain-table-header.component';
|
||||||
import { Direction } from '@app/shared/models/page/sort-order';
|
import { Direction } from '@app/shared/models/page/sort-order';
|
||||||
|
import { map } from 'rxjs';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class DomainTableConfigResolver implements Resolve<EntityTableConfig<DomainInfo>> {
|
export class DomainTableConfigResolver implements Resolve<EntityTableConfig<DomainInfo>> {
|
||||||
@ -88,11 +89,17 @@ export class DomainTableConfigResolver implements Resolve<EntityTableConfig<Doma
|
|||||||
this.config.loadEntity = id => this.domainService.getDomainInfoById(id.id);
|
this.config.loadEntity = id => this.domainService.getDomainInfoById(id.id);
|
||||||
this.config.saveEntity = (domain, originalDomain) => {
|
this.config.saveEntity = (domain, originalDomain) => {
|
||||||
const clientsIds = domain.oauth2ClientInfos as Array<string> || [];
|
const clientsIds = domain.oauth2ClientInfos as Array<string> || [];
|
||||||
if (domain.id && !isEqual(domain.oauth2ClientInfos?.sort(), originalDomain.oauth2ClientInfos?.map(info => info.id.id).sort())) {
|
if (domain.id && !isEqual(domain.oauth2ClientInfos?.sort(),
|
||||||
|
originalDomain.oauth2ClientInfos?.map(info => info.id ? info.id.id : info).sort())) {
|
||||||
this.domainService.updateOauth2Clients(domain.id.id, clientsIds).subscribe();
|
this.domainService.updateOauth2Clients(domain.id.id, clientsIds).subscribe();
|
||||||
}
|
}
|
||||||
delete domain.oauth2ClientInfos;
|
delete domain.oauth2ClientInfos;
|
||||||
return this.domainService.saveDomain(domain as Domain, domain.id ? [] : clientsIds);
|
return this.domainService.saveDomain(domain, domain.id ? [] : clientsIds).pipe(
|
||||||
|
map(domain => {
|
||||||
|
(domain as DomainInfo).oauth2ClientInfos = clientsIds;
|
||||||
|
return domain;
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
this.config.deleteEntity = id => this.domainService.deleteDomain(id.id);
|
this.config.deleteEntity = id => this.domainService.deleteDomain(id.id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,9 +73,9 @@ export class DomainComponent extends EntityComponent<DomainInfo> {
|
|||||||
this.entityForm.patchValue({
|
this.entityForm.patchValue({
|
||||||
name: entity.name,
|
name: entity.name,
|
||||||
oauth2Enabled: entity.oauth2Enabled,
|
oauth2Enabled: entity.oauth2Enabled,
|
||||||
oauth2ClientInfos: entity.oauth2ClientInfos?.map(info => info.id.id),
|
oauth2ClientInfos: entity.oauth2ClientInfos?.map(info => info.id ? info.id.id : info),
|
||||||
propagateToEdge: entity.propagateToEdge
|
propagateToEdge: entity.propagateToEdge
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
redirectURI(): string {
|
redirectURI(): string {
|
||||||
|
|||||||
@ -34,6 +34,7 @@ import { Direction } from '@app/shared/models/page/sort-order';
|
|||||||
import { MobileAppService } from '@core/http/mobile-app.service';
|
import { MobileAppService } from '@core/http/mobile-app.service';
|
||||||
import { MobileAppComponent } from '@home/pages/admin/oauth2/mobile-apps/mobile-app.component';
|
import { MobileAppComponent } from '@home/pages/admin/oauth2/mobile-apps/mobile-app.component';
|
||||||
import { MobileAppTableHeaderComponent } from '@home/pages/admin/oauth2/mobile-apps/mobile-app-table-header.component';
|
import { MobileAppTableHeaderComponent } from '@home/pages/admin/oauth2/mobile-apps/mobile-app-table-header.component';
|
||||||
|
import { map } from 'rxjs';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class MobileAppTableConfigResolver implements Resolve<EntityTableConfig<MobileAppInfo>> {
|
export class MobileAppTableConfigResolver implements Resolve<EntityTableConfig<MobileAppInfo>> {
|
||||||
@ -94,11 +95,17 @@ export class MobileAppTableConfigResolver implements Resolve<EntityTableConfig<M
|
|||||||
this.config.loadEntity = id => this.mobileAppService.getMobileAppInfoById(id.id);
|
this.config.loadEntity = id => this.mobileAppService.getMobileAppInfoById(id.id);
|
||||||
this.config.saveEntity = (mobileApp, originalMobileApp) => {
|
this.config.saveEntity = (mobileApp, originalMobileApp) => {
|
||||||
const clientsIds = mobileApp.oauth2ClientInfos as Array<string> || [];
|
const clientsIds = mobileApp.oauth2ClientInfos as Array<string> || [];
|
||||||
if (mobileApp.id && !isEqual(mobileApp.oauth2ClientInfos?.sort(), originalMobileApp.oauth2ClientInfos?.map(info => info.id.id).sort())) {
|
if (mobileApp.id && !isEqual(mobileApp.oauth2ClientInfos?.sort(),
|
||||||
|
originalMobileApp.oauth2ClientInfos?.map(info => info.id ? info.id.id : info).sort())) {
|
||||||
this.mobileAppService.updateOauth2Clients(mobileApp.id.id, clientsIds).subscribe();
|
this.mobileAppService.updateOauth2Clients(mobileApp.id.id, clientsIds).subscribe();
|
||||||
}
|
}
|
||||||
delete mobileApp.oauth2ClientInfos;
|
delete mobileApp.oauth2ClientInfos;
|
||||||
return this.mobileAppService.saveMobileApp(mobileApp as MobileApp, mobileApp.id ? [] : clientsIds);
|
return this.mobileAppService.saveMobileApp(mobileApp as MobileApp, mobileApp.id ? [] : clientsIds).pipe(
|
||||||
|
map(mobileApp => {
|
||||||
|
(mobileApp as MobileAppInfo).oauth2ClientInfos = clientsIds;
|
||||||
|
return mobileApp;
|
||||||
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
this.config.deleteEntity = id => this.mobileAppService.deleteMobileApp(id.id);
|
this.config.deleteEntity = id => this.mobileAppService.deleteMobileApp(id.id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,7 +67,7 @@ export class MobileAppComponent extends EntityComponent<MobileAppInfo> {
|
|||||||
pkgName: entity.pkgName,
|
pkgName: entity.pkgName,
|
||||||
appSecret: entity.appSecret,
|
appSecret: entity.appSecret,
|
||||||
oauth2Enabled: entity.oauth2Enabled,
|
oauth2Enabled: entity.oauth2Enabled,
|
||||||
oauth2ClientInfos: entity.oauth2ClientInfos?.map(info => info.id.id)
|
oauth2ClientInfos: entity.oauth2ClientInfos?.map(info => info.id ? info.id.id : info)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user