Skip to content

Commit

Permalink
Removing implicitFlow in favor of codeFlow
Browse files Browse the repository at this point in the history
  • Loading branch information
VitoAlbano committed Jul 1, 2024
1 parent bda9555 commit 1000e92
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,10 @@
<mat-slide-toggle class="adf-full-width" name="silentLogin" formControlName="silentLogin">
</mat-slide-toggle>

<mat-label>Implicit Flow</mat-label>
<mat-slide-toggle class="adf-full-width" name="implicitFlow" formControlName="implicitFlow">
<mat-label>Code Flow</mat-label>
<mat-slide-toggle class="adf-full-width" name="codeFlow" formControlName="codeFlow">
</mat-slide-toggle>

<ng-container *ngIf="isOAUTH">
<mat-label>Code Flow</mat-label>
<mat-slide-toggle class="adf-full-width" name="codeFlow" formControlName="codeFlow">
</mat-slide-toggle>
</ng-container>

<mat-form-field class="adf-full-width">
<mat-label>Redirect URI</mat-label>
<input matInput name="redirectUri" formControlName="redirectUri">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ export class HostSettingsComponent implements OnInit {
scope: [oauth.scope, Validators.required],
secret: oauth.secret,
silentLogin: oauth.silentLogin,
implicitFlow: oauth.implicitFlow,
codeFlow: oauth.codeFlow,
publicUrls: [oauth.publicUrls]
});
Expand All @@ -161,7 +160,10 @@ export class HostSettingsComponent implements OnInit {
}

private createIdentityFormControl(): UntypedFormControl {
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [Validators.required, Validators.pattern(HOST_REGEX)]);
return new UntypedFormControl(this.appConfig.get<string>(AppConfigValues.IDENTITY_HOST), [
Validators.required,
Validators.pattern(HOST_REGEX)
]);
}

private createECMFormControl(): UntypedFormControl {
Expand Down Expand Up @@ -203,7 +205,7 @@ export class HostSettingsComponent implements OnInit {
}

private saveOAuthValues(values: any) {
if (values.oauthConfig.publicUrls && (typeof values.oauthConfig.publicUrls === 'string')) {
if (values.oauthConfig.publicUrls && typeof values.oauthConfig.publicUrls === 'string') {
values.oauthConfig.publicUrls = values.oauthConfig.publicUrls.split(',');
}

Expand Down Expand Up @@ -278,5 +280,4 @@ export class HostSettingsComponent implements OnInit {
get oauthConfig(): UntypedFormControl {
return this.form.get('oauthConfig') as UntypedFormControl;
}

}
41 changes: 16 additions & 25 deletions lib/core/src/lib/app-config/app-config.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ export enum Status {
providedIn: 'root'
})
export class AppConfigService {

config: any = {
application: {
name: 'Alfresco ADF Application'
Expand Down Expand Up @@ -97,11 +96,10 @@ export class AppConfigService {
* @returns Property value, when loaded
*/
select(property: string): Observable<any> {
return this.onLoadSubject
.pipe(
map((config) => ObjectUtils.getValue(config, property)),
distinctUntilChanged()
);
return this.onLoadSubject.pipe(
map((config) => ObjectUtils.getValue(config, property)),
distinctUntilChanged()
);
}

/**
Expand Down Expand Up @@ -170,9 +168,7 @@ export class AppConfigService {
protected onDataLoaded() {
this.onLoadSubject.next(this.config);

this.extensionService.setup$
.pipe(take(1))
.subscribe((config) => this.onExtensionsLoaded(config));
this.extensionService.setup$.pipe(take(1)).subscribe((config) => this.onExtensionsLoaded(config));
}

protected onExtensionsLoaded(config: ExtensionConfig) {
Expand Down Expand Up @@ -227,20 +223,18 @@ export class AppConfigService {
* @param hostIdp host address
* @returns Discovery configuration
*/
loadWellKnown(hostIdp: string): Promise<OpenidConfiguration> {
loadWellKnown(hostIdp: string): Promise<OpenidConfiguration> {
return new Promise((resolve, reject) => {
this.http
.get<OpenidConfiguration>(`${hostIdp}/.well-known/openid-configuration`)
.subscribe({
next: (res: OpenidConfiguration) => {
resolve(res);
},
error: (err: any) => {
// eslint-disable-next-line no-console
console.error('hostIdp not correctly configured or unreachable');
reject(err);
}
});
this.http.get<OpenidConfiguration>(`${hostIdp}/.well-known/openid-configuration`).subscribe({
next: (res: OpenidConfiguration) => {
resolve(res);
},
error: (err: any) => {
// eslint-disable-next-line no-console
console.error('hostIdp not correctly configured or unreachable');
reject(err);
}
});
});
}

Expand All @@ -251,13 +245,11 @@ export class AppConfigService {
*/
get oauth2(): OauthConfigModel {
const config = this.get(AppConfigValues.OAUTHCONFIG, {});
const implicitFlow = config['implicitFlow'] === true || config['implicitFlow'] === 'true';
const silentLogin = config['silentLogin'] === true || config['silentLogin'] === 'true';
const codeFlow = config['codeFlow'] === true || config['codeFlow'] === 'true';

return {
...(config as OauthConfigModel),
implicitFlow,
silentLogin,
codeFlow
};
Expand All @@ -273,5 +265,4 @@ export class AppConfigService {

return result;
}

}
2 changes: 1 addition & 1 deletion lib/testing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"url": "https://github.com/Alfresco/alfresco-ng2-components/issues"
},
"peerDependencies": {
"@alfresco/js-api": ">=7.9.0"
"@alfresco/js-api": ">=7.9.0-0"
},
"keywords": [
"testing",
Expand Down
30 changes: 9 additions & 21 deletions lib/testing/src/lib/protractor/core/pages/settings.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ export class SettingsPage {
silentLoginToggleLabel = $(`${materialLocators.Slide.toggle.root}[formcontrolname="silentLogin"] label`);
silentLoginToggleElement = $(`${materialLocators.Slide.toggle.root}[formcontrolname="silentLogin"]`);
implicitFlowLabel = $(`${materialLocators.Slide.toggle.root}[formcontrolname="implicitFlow"] label`);
implicitFlowElement = $(`${materialLocators.Slide.toggle.root}[formcontrolname="implicitFlow"]`);
codeFlowElement = $(`${materialLocators.Slide.toggle.root}[formcontrolname="codeFlow"]`);
codeFlowLabel = $(`${materialLocators.Slide.toggle.root}[formcontrolname="codeFlow"] label`);
applyButton = $('button[data-automation-id="settings-apply-button"]');
providerDropdown = new DropdownPage($(`${materialLocators.Select.root}[id="adf-provider-selector"]`));

Expand Down Expand Up @@ -64,20 +64,18 @@ export class SettingsPage {
authHost,
identityHost,
silentLogin = true,
implicitFlow = true,
codeFlow = true,
clientId?: string,
logoutUrl: string = '/logout',
codeFlow = true
logoutUrl: string = '/logout'
) {
await this.goToSettingsPage();
await this.setProvider('ECM');
await this.clickSsoRadioButton();
await this.setContentServicesURL(contentServiceURL);
await this.setAuthHost(authHost);
await this.setIdentityHost(identityHost);
await this.setSilentLogin(silentLogin);
await this.setImplicitFlow(implicitFlow);
await this.setCodeFlow(codeFlow);
await this.setSilentLogin(silentLogin);
await this.setClientId(clientId);
await this.setLogoutUrl(logoutUrl);
await this.clickApply();
Expand All @@ -89,7 +87,7 @@ export class SettingsPage {
authHost,
identityHost,
silentLogin = true,
implicitFlow = true,
codeFlow = true,
clientId?: string,
logoutUrl: string = '/logout'
) {
Expand All @@ -99,9 +97,8 @@ export class SettingsPage {
await this.setContentServicesURL(contentServiceURL);
await this.setAuthHost(authHost);
await this.setIdentityHost(identityHost);
await this.setCodeFlow(codeFlow);
await this.setSilentLogin(silentLogin);
await this.setCodeFlow(false);
await this.setImplicitFlow(implicitFlow);
await this.setClientId(clientId);
await this.setLogoutUrl(logoutUrl);
await this.clickApply();
Expand Down Expand Up @@ -143,23 +140,14 @@ export class SettingsPage {
}
}

async setImplicitFlow(enableToggle) {
await BrowserVisibility.waitUntilElementIsVisible(this.implicitFlowElement);

const isChecked = (await BrowserActions.getAttribute(this.implicitFlowElement, 'class')).includes(materialLocators.Slide.toggle.checked);

if ((isChecked && !enableToggle) || (!isChecked && enableToggle)) {
await BrowserActions.click(this.implicitFlowLabel);
}
}

async setCodeFlow(enableToggle) {
await BrowserVisibility.waitUntilElementIsVisible(this.codeFlowElement);

const isChecked = (await BrowserActions.getAttribute(this.codeFlowElement, 'class')).includes(materialLocators.Checked.root);
const classElements = await BrowserActions.getAttribute(this.codeFlowElement, 'class');
const isChecked = classElements.includes(materialLocators.Slide.toggle.checked);

if ((isChecked && !enableToggle) || (!isChecked && enableToggle)) {
await BrowserActions.click(this.codeFlowElement);
await BrowserActions.click(this.codeFlowLabel);
}
}
}

0 comments on commit 1000e92

Please sign in to comment.