fix: harden admin frontend contracts
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { TestBed } from '@angular/core/testing';
|
import { TestBed } from '@angular/core/testing';
|
||||||
import { provideHttpClient } from '@angular/common/http';
|
import { provideHttpClient } from '@angular/common/http';
|
||||||
import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing';
|
import { HttpTestingController, provideHttpClientTesting } from '@angular/common/http/testing';
|
||||||
import { AuthApi } from './auth-api';
|
import { AuthApi, RegistrationRequest } from './auth-api';
|
||||||
import { environment } from '../../../environments/environment';
|
import { environment } from '../../../environments/environment';
|
||||||
import { User } from '../../models/user.model';
|
import { User } from '../../models/user.model';
|
||||||
|
|
||||||
@@ -59,8 +59,8 @@ describe('AuthApi', () => {
|
|||||||
request.flush(invitation);
|
request.flush(invitation);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('registers and links an invited player', () => {
|
it('registers with only the supported account fields', () => {
|
||||||
const registration = {
|
const registrationWithLegacyField = {
|
||||||
email: 'alex@example.de',
|
email: 'alex@example.de',
|
||||||
password: 'secret1',
|
password: 'secret1',
|
||||||
firstName: 'Alex',
|
firstName: 'Alex',
|
||||||
@@ -68,11 +68,16 @@ describe('AuthApi', () => {
|
|||||||
linkPlayerId: 7,
|
linkPlayerId: 7,
|
||||||
};
|
};
|
||||||
|
|
||||||
service.register(registration).subscribe();
|
service.register(registrationWithLegacyField as RegistrationRequest).subscribe();
|
||||||
|
|
||||||
const request = httpMock.expectOne(`${environment.apiUrl}auth/email/register`);
|
const request = httpMock.expectOne(`${environment.apiUrl}auth/email/register`);
|
||||||
expect(request.request.method).toBe('POST');
|
expect(request.request.method).toBe('POST');
|
||||||
expect(request.request.body).toEqual(registration);
|
expect(request.request.body).toEqual({
|
||||||
|
email: 'alex@example.de',
|
||||||
|
password: 'secret1',
|
||||||
|
firstName: 'Alex',
|
||||||
|
lastName: 'Muster',
|
||||||
|
});
|
||||||
request.flush(null);
|
request.flush(null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,13 @@ export class AuthApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
register(request: RegistrationRequest): Observable<void> {
|
register(request: RegistrationRequest): Observable<void> {
|
||||||
return this.http.post<void>(`${this.baseUrl}/email/register`, request);
|
const { email, password, firstName, lastName } = request;
|
||||||
|
return this.http.post<void>(`${this.baseUrl}/email/register`, {
|
||||||
|
email,
|
||||||
|
password,
|
||||||
|
firstName,
|
||||||
|
lastName,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
forgotPassword(email: string): Observable<void> {
|
forgotPassword(email: string): Observable<void> {
|
||||||
|
|||||||
@@ -52,12 +52,15 @@ export interface AdminUserProfileRequest {
|
|||||||
lastName?: string | null;
|
lastName?: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type AdminUserRoleId = 1 | 2;
|
||||||
|
export type AdminUserStatusId = 1 | 2;
|
||||||
|
|
||||||
export interface AdminUserRoleRequest {
|
export interface AdminUserRoleRequest {
|
||||||
role: number;
|
role: AdminUserRoleId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AdminUserStatusRequest {
|
export interface AdminUserStatusRequest {
|
||||||
status: number;
|
status: AdminUserStatusId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type AdminPlayerAssignmentFilter = 'all' | 'assigned' | 'unassigned';
|
export type AdminPlayerAssignmentFilter = 'all' | 'assigned' | 'unassigned';
|
||||||
|
|||||||
Reference in New Issue
Block a user