Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

Commit

Permalink
add support for u2f setup apis
Browse files Browse the repository at this point in the history
  • Loading branch information
kspearrin committed Oct 8, 2018
1 parent c3f67db commit 4b7962d
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 4 deletions.
8 changes: 7 additions & 1 deletion src/abstractions/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import { UpdateProfileRequest } from '../models/request/updateProfileRequest';
import { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';
import { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';
import { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';
import { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';
import { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';
import { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';
import { VerifyBankRequest } from '../models/request/verifyBankRequest';
Expand Down Expand Up @@ -80,7 +81,10 @@ import { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';
import { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';
import { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';
import { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';
import { TwoFactorU2fResponse } from '../models/response/twoFactorU2fResponse';
import {
ChallengeResponse,
TwoFactorU2fResponse,
} from '../models/response/twoFactorU2fResponse';
import { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';
import { UserKeyResponse } from '../models/response/userKeyResponse';

Expand Down Expand Up @@ -195,6 +199,7 @@ export abstract class ApiService {
request: PasswordVerificationRequest) => Promise<TwoFactorDuoResponse>;
getTwoFactorYubiKey: (request: PasswordVerificationRequest) => Promise<TwoFactorYubiKeyResponse>;
getTwoFactorU2f: (request: PasswordVerificationRequest) => Promise<TwoFactorU2fResponse>;
getTwoFactorU2fChallenge: (request: PasswordVerificationRequest) => Promise<ChallengeResponse>;
getTwoFactorRecover: (request: PasswordVerificationRequest) => Promise<TwoFactorRecoverResponse>;
putTwoFactorAuthenticator: (
request: UpdateTwoFactorAuthenticatorRequest) => Promise<TwoFactorAuthenticatorResponse>;
Expand All @@ -204,6 +209,7 @@ export abstract class ApiService {
request: UpdateTwoFactorDuoRequest) => Promise<TwoFactorDuoResponse>;
putTwoFactorYubiKey: (request: UpdateTwoFactorYubioOtpRequest) => Promise<TwoFactorYubiKeyResponse>;
putTwoFactorU2f: (request: UpdateTwoFactorU2fRequest) => Promise<TwoFactorU2fResponse>;
deleteTwoFactorU2f: (request: UpdateTwoFactorU2fDeleteRequest) => Promise<TwoFactorU2fResponse>;
putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise<TwoFactorProviderResponse>;
putTwoFactorOrganizationDisable: (organizationId: string,
request: TwoFactorProviderRequest) => Promise<TwoFactorProviderResponse>;
Expand Down
5 changes: 5 additions & 0 deletions src/models/request/updateTwoFactorU2fDeleteRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { PasswordVerificationRequest } from './passwordVerificationRequest';

export class UpdateTwoFactorU2fDeleteRequest extends PasswordVerificationRequest {
id: number;
}
2 changes: 2 additions & 0 deletions src/models/request/updateTwoFactorU2fRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ import { PasswordVerificationRequest } from './passwordVerificationRequest';

export class UpdateTwoFactorU2fRequest extends PasswordVerificationRequest {
deviceResponse: string;
name: string;
id: number;
}
16 changes: 14 additions & 2 deletions src/models/response/twoFactorU2fResponse.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
export class TwoFactorU2fResponse {
enabled: boolean;
challenge: ChallengeResponse;
keys: KeyResponse[];

constructor(response: any) {
this.enabled = response.Enabled;
this.challenge = response.Challenge == null ? null : new ChallengeResponse(response.Challenge);
this.keys = response.Keys == null ? null : response.Keys.map((k: any) => new KeyResponse(k));
}
}

export class KeyResponse {
name: string;
id: number;
compromised: boolean;

constructor(response: any) {
this.name = response.Name;
this.id = response.Id;
this.compromised = response.Compromised;
}
}

Expand Down
16 changes: 15 additions & 1 deletion src/services/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import { UpdateProfileRequest } from '../models/request/updateProfileRequest';
import { UpdateTwoFactorAuthenticatorRequest } from '../models/request/updateTwoFactorAuthenticatorRequest';
import { UpdateTwoFactorDuoRequest } from '../models/request/updateTwoFactorDuoRequest';
import { UpdateTwoFactorEmailRequest } from '../models/request/updateTwoFactorEmailRequest';
import { UpdateTwoFactorU2fDeleteRequest } from '../models/request/updateTwoFactorU2fDeleteRequest';
import { UpdateTwoFactorU2fRequest } from '../models/request/updateTwoFactorU2fRequest';
import { UpdateTwoFactorYubioOtpRequest } from '../models/request/updateTwoFactorYubioOtpRequest';
import { VerifyBankRequest } from '../models/request/verifyBankRequest';
Expand Down Expand Up @@ -87,7 +88,10 @@ import { TwoFactorDuoResponse } from '../models/response/twoFactorDuoResponse';
import { TwoFactorEmailResponse } from '../models/response/twoFactorEmailResponse';
import { TwoFactorProviderResponse } from '../models/response/twoFactorProviderResponse';
import { TwoFactorRecoverResponse } from '../models/response/twoFactorRescoverResponse';
import { TwoFactorU2fResponse } from '../models/response/twoFactorU2fResponse';
import {
ChallengeResponse,
TwoFactorU2fResponse,
} from '../models/response/twoFactorU2fResponse';
import { TwoFactorYubiKeyResponse } from '../models/response/twoFactorYubiKeyResponse';
import { UserKeyResponse } from '../models/response/userKeyResponse';

Expand Down Expand Up @@ -618,6 +622,11 @@ export class ApiService implements ApiServiceAbstraction {
return new TwoFactorU2fResponse(r);
}

async getTwoFactorU2fChallenge(request: PasswordVerificationRequest): Promise<ChallengeResponse> {
const r = await this.send('POST', '/two-factor/get-u2f-challenge', request, true, true);
return new ChallengeResponse(r);
}

async getTwoFactorRecover(request: PasswordVerificationRequest): Promise<TwoFactorRecoverResponse> {
const r = await this.send('POST', '/two-factor/get-recover', request, true, true);
return new TwoFactorRecoverResponse(r);
Expand Down Expand Up @@ -655,6 +664,11 @@ export class ApiService implements ApiServiceAbstraction {
return new TwoFactorU2fResponse(r);
}

async deleteTwoFactorU2f(request: UpdateTwoFactorU2fDeleteRequest): Promise<TwoFactorU2fResponse> {
const r = await this.send('DELETE', '/two-factor/u2f', request, true, true);
return new TwoFactorU2fResponse(r);
}

async putTwoFactorDisable(request: TwoFactorProviderRequest): Promise<TwoFactorProviderResponse> {
const r = await this.send('PUT', '/two-factor/disable', request, true, true);
return new TwoFactorProviderResponse(r);
Expand Down

0 comments on commit 4b7962d

Please sign in to comment.