X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fusers%2Fuser-list%2Fuser-list.component.ts;h=ab82713b2bc99357a4a67bfe680ec03dc538b52c;hb=a95a4cc89155f448e6f9ca0957170f3c72a9d964;hp=66ab796f9bee2af8270663cf9710fbfc12b9a685;hpb=f8b2c1b4f509c037b9650cca2c5befd21f056df3;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/users/user-list/user-list.component.ts b/client/src/app/+admin/users/user-list/user-list.component.ts index 66ab796f9..ab82713b2 100644 --- a/client/src/app/+admin/users/user-list/user-list.component.ts +++ b/client/src/app/+admin/users/user-list/user-list.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, ViewChild } from '@angular/core' -import { Notifier } from '@app/core' +import { AuthService, Notifier } from '@app/core' import { SortMeta } from 'primeng/components/common/sortmeta' import { ConfirmService, ServerService } from '../../../core' import { RestPagination, RestTable, UserService } from '../../../shared' @@ -14,7 +14,7 @@ import { DropdownAction } from '@app/shared/buttons/action-dropdown.component' styleUrls: [ './user-list.component.scss' ] }) export class UserListComponent extends RestTable implements OnInit { - @ViewChild('userBanModal') userBanModal: UserBanModalComponent + @ViewChild('userBanModal', { static: true }) userBanModal: UserBanModalComponent users: User[] = [] totalRecords = 0 @@ -30,11 +30,16 @@ export class UserListComponent extends RestTable implements OnInit { private confirmService: ConfirmService, private serverService: ServerService, private userService: UserService, + private auth: AuthService, private i18n: I18n ) { super() } + get authUser () { + return this.auth.getUser() + } + get requiresEmailVerification () { return this.serverService.getConfig().signup.requiresEmailVerification } @@ -45,22 +50,26 @@ export class UserListComponent extends RestTable implements OnInit { this.bulkUserActions = [ { label: this.i18n('Delete'), - handler: users => this.removeUsers(users) + handler: users => this.removeUsers(users), + isDisplayed: users => users.every(u => this.authUser.canManage(u)) }, { label: this.i18n('Ban'), handler: users => this.openBanUserModal(users), - isDisplayed: users => users.every(u => u.blocked === false) + isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === false) }, { label: this.i18n('Unban'), handler: users => this.unbanUsers(users), - isDisplayed: users => users.every(u => u.blocked === true) + isDisplayed: users => users.every(u => this.authUser.canManage(u) && u.blocked === true) }, { label: this.i18n('Set Email as Verified'), handler: users => this.setEmailsAsVerified(users), - isDisplayed: users => this.requiresEmailVerification && users.every(u => !u.blocked && u.emailVerified === false) + isDisplayed: users => { + return this.requiresEmailVerification && + users.every(u => this.authUser.canManage(u) && !u.blocked && u.emailVerified === false) + } } ] }