From 2166c058f34dff6f91566930d12448805d829de7 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 7 Oct 2022 14:23:42 +0200 Subject: Allow admins to disable two factor auth --- .../users/user-edit/user-edit.component.html | 9 +++++++-- .../users/user-edit/user-edit.component.scss | 16 ++++++---------- .../+admin/overview/users/user-edit/user-edit.ts | 12 ++++++++++++ .../users/user-edit/user-update.component.ts | 21 +++++++++++++++++---- 4 files changed, 42 insertions(+), 16 deletions(-) (limited to 'client/src/app/+admin/overview/users') diff --git a/client/src/app/+admin/overview/users/user-edit/user-edit.component.html b/client/src/app/+admin/overview/users/user-edit/user-edit.component.html index da5879a36..e51ccf808 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-edit.component.html +++ b/client/src/app/+admin/overview/users/user-edit/user-edit.component.html @@ -204,7 +204,7 @@ -
+
@@ -213,7 +213,7 @@
-
+
@@ -222,6 +222,11 @@
+ +
+ + +
diff --git a/client/src/app/+admin/overview/users/user-edit/user-edit.component.scss b/client/src/app/+admin/overview/users/user-edit/user-edit.component.scss index 68fa1215f..698628149 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-edit.component.scss +++ b/client/src/app/+admin/overview/users/user-edit/user-edit.component.scss @@ -48,17 +48,13 @@ my-user-real-quota-info { } .danger-zone { - .reset-password-email { - margin-bottom: 30px; + button { + @include peertube-button; + @include danger-button; + @include disable-outline; - button { - @include peertube-button; - @include danger-button; - @include disable-outline; - - display: block; - margin-top: 0; - } + display: block; + margin-top: 0; } } diff --git a/client/src/app/+admin/overview/users/user-edit/user-edit.ts b/client/src/app/+admin/overview/users/user-edit/user-edit.ts index 6dae4110d..21e9629ab 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-edit.ts +++ b/client/src/app/+admin/overview/users/user-edit/user-edit.ts @@ -60,10 +60,22 @@ export abstract class UserEdit extends FormReactive implements OnInit { ] } + displayDangerZone () { + if (this.isCreation()) return false + if (this.user?.pluginAuth) return false + if (this.auth.getUser().id === this.user.id) return false + + return true + } + resetPassword () { return } + disableTwoFactorAuth () { + return + } + getUserVideoQuota () { return this.form.value['videoQuota'] } diff --git a/client/src/app/+admin/overview/users/user-edit/user-update.component.ts b/client/src/app/+admin/overview/users/user-edit/user-update.component.ts index bab288a67..1482a1902 100644 --- a/client/src/app/+admin/overview/users/user-edit/user-update.component.ts +++ b/client/src/app/+admin/overview/users/user-edit/user-update.component.ts @@ -10,7 +10,7 @@ import { USER_VIDEO_QUOTA_VALIDATOR } from '@app/shared/form-validators/user-validators' import { FormValidatorService } from '@app/shared/shared-forms' -import { UserAdminService } from '@app/shared/shared-users' +import { TwoFactorService, UserAdminService } from '@app/shared/shared-users' import { User as UserType, UserAdminFlag, UserRole, UserUpdate } from '@shared/models' import { UserEdit } from './user-edit' @@ -34,6 +34,7 @@ export class UserUpdateComponent extends UserEdit implements OnInit, OnDestroy { private router: Router, private notifier: Notifier, private userService: UserService, + private twoFactorService: TwoFactorService, private userAdminService: UserAdminService ) { super() @@ -120,10 +121,22 @@ export class UserUpdateComponent extends UserEdit implements OnInit, OnDestroy { this.notifier.success($localize`An email asking for password reset has been sent to ${this.user.username}.`) }, - error: err => { - this.error = err.message - } + error: err => this.notifier.error(err.message) + }) + } + + disableTwoFactorAuth () { + this.twoFactorService.disableTwoFactor({ userId: this.user.id }) + .subscribe({ + next: () => { + this.user.twoFactorEnabled = false + + this.notifier.success($localize`Two factor authentication of ${this.user.username} disabled.`) + }, + + error: err => this.notifier.error(err.message) }) + } private onUserFetched (userJson: UserType) { -- cgit v1.2.3