Skip to content

Commit 5f131bf

Browse files
committed
feat(frontend/backend): add client auth scope for password-based apps to register servers across desktop apps and CLI
1 parent 740d791 commit 5f131bf

4 files changed

Lines changed: 8 additions & 5 deletions

File tree

backend/src/applications/sync/services/sync-clients-manager.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import crypto from 'node:crypto'
66
import fs from 'node:fs/promises'
77
import path from 'node:path'
88
import { AuthManager } from '../../../authentication/auth.service'
9+
import { AUTH_SCOPE } from '../../../authentication/constants/scope'
910
import { FastifyAuthenticatedRequest } from '../../../authentication/interfaces/auth-request.interface'
1011
import { AuthProvider } from '../../../authentication/providers/auth-providers.models'
1112
import { AuthProvider2FA } from '../../../authentication/providers/two-fa/auth-provider-two-fa.service'
@@ -45,7 +46,7 @@ export class SyncClientsManager {
4546
) {}
4647

4748
async register(clientRegistrationDto: SyncClientRegistrationDto, ip: string): Promise<SyncClientAuthRegistration> {
48-
const user: UserModel = await this.authProvider.validateUser(clientRegistrationDto.login, clientRegistrationDto.password)
49+
const user: UserModel = await this.authProvider.validateUser(clientRegistrationDto.login, clientRegistrationDto.password, ip, AUTH_SCOPE.CLIENT)
4950
if (!user) {
5051
this.logger.warn(`${this.register.name} - auth failed for user *${clientRegistrationDto.login}*`)
5152
throw new HttpException('Wrong login or password', HttpStatus.UNAUTHORIZED)
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export enum AUTH_SCOPE {
2-
WEBDAV = 'webdav'
2+
WEBDAV = 'webdav',
3+
CLIENT = 'client'
34
}

frontend/src/app/applications/users/components/dialogs/user-auth-manage-app-passwords-dialog.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ <h4 class="modal-title">
2222
<div class="input-group-text" l10nTranslate>Application</div>
2323
<select class="form-select form-select-sm" formControlName="app" style="max-width: 150px">
2424
@for (s of availableApps; track $index) {
25-
<option [value]="s" l10nTranslate>{{ s }}</option>
25+
<option [value]="s" l10nTranslate>{{ s | capitalize }}</option>
2626
}
2727
</select>
2828
<input

frontend/src/app/applications/users/components/dialogs/user-auth-manage-app-passwords-dialog.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { FormGroup, FormsModule, ReactiveFormsModule, UntypedFormBuilder, Valida
44
import { FaIconComponent } from '@fortawesome/angular-fontawesome'
55
import { faCopy, faKey, faPlus } from '@fortawesome/free-solid-svg-icons'
66
import { UserAppPassword } from '@sync-in-server/backend/src/applications/users/interfaces/user-secrets.interface'
7-
87
import { AUTH_SCOPE } from '@sync-in-server/backend/src/authentication/constants/scope'
98
import { createLightSlug, currentDate } from '@sync-in-server/backend/src/common/shared'
109
import { L10N_LOCALE, L10nLocale, L10nTranslateDirective, L10nTranslatePipe } from 'angular-l10n'
@@ -13,6 +12,7 @@ import { BsDatepickerDirective, BsDatepickerInputDirective } from 'ngx-bootstrap
1312
import { ClipboardService } from 'ngx-clipboard'
1413
import { filter } from 'rxjs/operators'
1514
import { AutofocusDirective } from '../../../../common/directives/auto-focus.directive'
15+
import { CapitalizePipe } from '../../../../common/pipes/capitalize.pipe'
1616
import { TimeDateFormatPipe } from '../../../../common/pipes/time-date-format.pipe'
1717
import { LayoutService } from '../../../../layout/layout.service'
1818
import { UserService } from '../../user.service'
@@ -29,7 +29,8 @@ import { UserService } from '../../user.service'
2929
BsDatepickerDirective,
3030
BsDatepickerInputDirective,
3131
ReactiveFormsModule,
32-
ButtonCheckboxDirective
32+
ButtonCheckboxDirective,
33+
CapitalizePipe
3334
],
3435
templateUrl: './user-auth-manage-app-passwords-dialog.component.html'
3536
})

0 commit comments

Comments
 (0)