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.loadEntity = id => this.oauth2Service.getOAuth2ClientById(id.id);
|
||||
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);
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ import {
|
||||
EntityTableColumn,
|
||||
EntityTableConfig
|
||||
} 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 { TranslateService } from '@ngx-translate/core';
|
||||
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 { DomainTableHeaderComponent } from '@home/pages/admin/oauth2/domains/domain-table-header.component';
|
||||
import { Direction } from '@app/shared/models/page/sort-order';
|
||||
import { map } from 'rxjs';
|
||||
|
||||
@Injectable()
|
||||
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.saveEntity = (domain, originalDomain) => {
|
||||
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();
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@ -73,9 +73,9 @@ export class DomainComponent extends EntityComponent<DomainInfo> {
|
||||
this.entityForm.patchValue({
|
||||
name: entity.name,
|
||||
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
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
redirectURI(): string {
|
||||
|
||||
@ -34,6 +34,7 @@ import { Direction } from '@app/shared/models/page/sort-order';
|
||||
import { MobileAppService } from '@core/http/mobile-app.service';
|
||||
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 { map } from 'rxjs';
|
||||
|
||||
@Injectable()
|
||||
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.saveEntity = (mobileApp, originalMobileApp) => {
|
||||
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();
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ export class MobileAppComponent extends EntityComponent<MobileAppInfo> {
|
||||
pkgName: entity.pkgName,
|
||||
appSecret: entity.appSecret,
|
||||
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