+ this.serverConfig = this.serverService.getTmpConfig()
+ this.serverService.getConfig()
+ .subscribe(config => this.serverConfig = config)
+
+ this.initialize()
+
+ this.bulkUserActions = [
+ [
+ {
+ label: this.i18n('Delete'),
+ description: this.i18n('Videos will be deleted, comments will be tombstoned.'),
+ handler: users => this.removeUsers(users),
+ isDisplayed: users => users.every(u => this.authUser.canManage(u))
+ },
+ {
+ label: this.i18n('Ban'),
+ description: this.i18n('User won\'t be able to login anymore, but videos and comments will be kept as is.'),
+ handler: users => this.openBanUserModal(users),
+ 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 => this.authUser.canManage(u) && u.blocked === true)
+ }
+ ],
+ [
+ {
+ label: this.i18n('Set Email as Verified'),
+ handler: users => this.setEmailsAsVerified(users),
+ isDisplayed: users => {
+ return this.requiresEmailVerification &&
+ users.every(u => this.authUser.canManage(u) && !u.blocked && u.emailVerified === false)
+ }
+ }
+ ]
+ ]
+ }
+
+ openBanUserModal (users: User[]) {
+ for (const user of users) {
+ if (user.username === 'root') {
+ this.notifier.error(this.i18n('You cannot ban root.'))
+ return
+ }
+ }
+
+ this.userBanModal.openModal(users)