diff --git a/src/app/authorisation.service.ts b/src/app/authorisation.service.ts index 01da60b722bce87df9ff9cfc85c9d3d40fcbefe1..beb7a7e7ca1cc38ed654ca2eb3265eefd8a852b5 100644 --- a/src/app/authorisation.service.ts +++ b/src/app/authorisation.service.ts @@ -201,7 +201,7 @@ export class AuthorisationService { this.http.post<any>(this.backendURI+'/getcert',data, options) .pipe(catchError(this.handleError([]))) .subscribe(resp => this.makeKeyCert(newkeypair.private, resp, token.sshauthzservice), - error => this.httperrorLogout(error,token.sshauthzservice)); + error => this.signingError(error,token.sshauthzservice)); console.log('getcert complete'); } @@ -231,14 +231,12 @@ public getKeys(id?: Identity) { keys.push(keyCert); sessionStorage.setItem('keys',JSON.stringify(keys)) this.sshAdd(keyCert); - let path=localStorage.getItem('path'); - console.log('authorisation complete, ready to navigate back to the correct view',path); - // this.tesService.keyCert.next(keyCert); // As soon as the certificate has been generated, we log back out of the signing server if (!(sshauthzservice.logout === null)) { window.open(sshauthzservice.logout); } + let path=localStorage.getItem('path'); this.readyToNavigate.next([true,path]); } @@ -348,14 +346,16 @@ public getKeys(id?: Identity) { this.statusMsg.next('There was an error logging in or generating crypto tokens'); console.error(error); } - private httperrorLogout(error: any,sshauthzservice: SshAuthzServer) { - console.log('authorsation service got an error'); - this.statusMsg.next('There was an error logging out and clearing all tokens'); + private signingError(error: any,sshauthzservice: SshAuthzServer) { + this.statusMsg.next('You don\'t appear to have an acocunt on '+sshauthzservice.name); console.log(error); if (!(sshauthzservice.logout === null)) { window.open(sshauthzservice.logout); } + let path=localStorage.getItem('path'); + this.readyToNavigate.next([true,path]); } + private handleError<T> (result?: T) { return (error: any): Observable<T> => { diff --git a/src/app/identity.ts b/src/app/identity.ts index 217695f2c478d03d274ff1f4d8229802a87b8f60..f4c0183481ea93857923aadf85e7cb6d269c2152 100644 --- a/src/app/identity.ts +++ b/src/app/identity.ts @@ -57,4 +57,5 @@ export class SshAuthzServer { logout: string; userdefined: boolean; cafp: string; + signup: string; } diff --git a/src/app/joblist/joblist.component.html b/src/app/joblist/joblist.component.html index aa8e370319aff3f83a5595a3c1cbe59d586953bf..bd7e4222fbd53fc8a65cb7a606cfa782187e565d 100644 --- a/src/app/joblist/joblist.component.html +++ b/src/app/joblist/joblist.component.html @@ -6,7 +6,7 @@ <div *ngFor="let id of identities"> --> <mat-card style="width: 100%" style="box-sizing: border-box;"> <div *ngIf="identity === undefined || identity == null" > - Select your username an compute site on the left to see running jobs or start new jobs. + Click login and select a provider or select one you've already logged in to. </div> <div *ngIf="(identity !== undefined) && (identity !== null)"> Jobs running as {{ identity.displayName() }} diff --git a/src/app/launcher/launcher.component.html b/src/app/launcher/launcher.component.html index 61fa197bda54556b1093856354b69cc9ee7e90f5..49aa3da7e06e255987e155d6e5e9664cdb501c19 100644 --- a/src/app/launcher/launcher.component.html +++ b/src/app/launcher/launcher.component.html @@ -18,15 +18,18 @@ <mat-expansion-panel> <mat-expansion-panel-header> <mat-panel-title> - More Services + Login </mat-panel-title> </mat-expansion-panel-header> <div *ngFor="let sshauthzserver of (authService.loggedOutAuthZ | async)" style="width: 100%"> - <button mat-button (click)=login(sshauthzserver) fxFlex style="text-align: left"> Run on {{ sshauthzserver.name }}</button> + <button mat-button (click)=login(sshauthzserver) fxFlex style="text-align: left"> Login to {{ sshauthzserver.name }}</button> <button mat-icon-button *ngIf="sshauthzserver.userdefined === true"><mat-icon>remove</mat-icon></button> </div> + <div *ngFor="let sshauthzserver of (authService.loggedOutAuthZ | async)" style="width: 100%"> + <button mat-button (click)=signup(sshauthzserver) style="width: 100%; text-align: left"> Signup for {{ sshauthzserver.name }}</button> + </div> <button mat-button (click) =logout() style="width: 100%; text-align: left">Logout</button> - <button mat-button (click) ="authService.updateAgentContents()" style="width: 100%; text-align: left">Refresh Services</button> + <button mat-button (click) ="authService.updateAgentContents()" style="width: 100%; text-align: left">Refresh</button> </mat-expansion-panel> <div *ngFor="let id of computeSitesService.appidentities | async"> <mat-expansion-panel (click)=selectId(id)> @@ -38,7 +41,7 @@ </div> <mat-expansion-panel> <mat-expansion-panel-header> - Advanced Options + Advanced </mat-expansion-panel-header> Select an API server <mat-select [ngModel]="selectedApiServer" (selectionChange)="backendSelectionService.setApiServer($event.value)"> diff --git a/src/app/launcher/launcher.component.ts b/src/app/launcher/launcher.component.ts index 6beb0fe17c9968aac8c42603eeca3abbe9595454..8d1d5113a89f6bce9c79944144e63e352f1c125c 100644 --- a/src/app/launcher/launcher.component.ts +++ b/src/app/launcher/launcher.component.ts @@ -107,6 +107,10 @@ export class LauncherComponent implements OnInit { this.authService.login(sshauthzserver); } + signup(sshauthzserver) { + window.open(sshauthzserver.signup); + } + selectId(id: Identity) { this.identity=id; diff --git a/src/assets/config/authservers.json b/src/assets/config/authservers.json index 09455f59740f023ee45812c94550430363595e8f..56c5c679c99270c9bca18adf10d7e961ced74d12 100644 --- a/src/assets/config/authservers.json +++ b/src/assets/config/authservers.json @@ -9,7 +9,8 @@ "name": "CVL", "icon": null, "scope": "user:email", - "cafp": "RSA SHA256:cmDxHrZQSPlBMUUcI/BWmruXho1XOzfXPDHSqVTwV2I" + "cafp": "RSA SHA256:cmDxHrZQSPlBMUUcI/BWmruXho1XOzfXPDHSqVTwV2I", + "signup": "https://docs.massive.org.au/M3/requesting-an-account.html" }, { "authorise": "https://sshauthz.cloud.cvl.org.au/pysshauthz/oauth2/oauth/authorize/google", @@ -20,6 +21,7 @@ "name": "CVL with Google ID", "icon": null, "scope": "user:email", - "cafp": "RSA SHA256:cmDxHrZQSPlBMUUcI/BWmruXho1XOzfXPDHSqVTwV2I" + "cafp": "RSA SHA256:cmDxHrZQSPlBMUUcI/BWmruXho1XOzfXPDHSqVTwV2I", + "signup": "https://docs.massive.org.au/M3/requesting-an-account.html" } ]