mirror of https://github.com/Chocobozzz/PeerTube
Add ability to mute user when banning them
Implements https://github.com/Chocobozzz/PeerTube/issues/1803pull/4666/head
parent
0ff01f837b
commit
5a8de57d57
|
@ -21,6 +21,13 @@
|
||||||
A banned user will no longer be able to login.
|
A banned user will no longer be able to login.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<my-peertube-checkbox
|
||||||
|
inputName="banMute" formControlName="mute"
|
||||||
|
i18n-labelText labelText="Mute this account"
|
||||||
|
></my-peertube-checkbox>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group inputs">
|
<div class="form-group inputs">
|
||||||
<input
|
<input
|
||||||
type="button" role="button" i18n-value value="Cancel" class="peertube-button grey-button"
|
type="button" role="button" i18n-value value="Cancel" class="peertube-button grey-button"
|
||||||
|
|
|
@ -5,7 +5,9 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref'
|
import { NgbModalRef } from '@ng-bootstrap/ng-bootstrap/modal/modal-ref'
|
||||||
import { User } from '@shared/models'
|
import { User } from '@shared/models'
|
||||||
import { USER_BAN_REASON_VALIDATOR } from '../form-validators/user-validators'
|
import { USER_BAN_REASON_VALIDATOR } from '../form-validators/user-validators'
|
||||||
|
import { Account } from '../shared-main'
|
||||||
import { UserAdminService } from '../shared-users'
|
import { UserAdminService } from '../shared-users'
|
||||||
|
import { BlocklistService } from './blocklist.service'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'my-user-ban-modal',
|
selector: 'my-user-ban-modal',
|
||||||
|
@ -24,14 +26,16 @@ export class UserBanModalComponent extends FormReactive implements OnInit {
|
||||||
protected formValidatorService: FormValidatorService,
|
protected formValidatorService: FormValidatorService,
|
||||||
private modalService: NgbModal,
|
private modalService: NgbModal,
|
||||||
private notifier: Notifier,
|
private notifier: Notifier,
|
||||||
private userAdminService: UserAdminService
|
private userAdminService: UserAdminService,
|
||||||
|
private blocklistService: BlocklistService
|
||||||
) {
|
) {
|
||||||
super()
|
super()
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
this.buildForm({
|
this.buildForm({
|
||||||
reason: USER_BAN_REASON_VALIDATOR
|
reason: USER_BAN_REASON_VALIDATOR,
|
||||||
|
mute: null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +54,7 @@ export class UserBanModalComponent extends FormReactive implements OnInit {
|
||||||
|
|
||||||
banUser () {
|
banUser () {
|
||||||
const reason = this.form.value['reason'] || undefined
|
const reason = this.form.value['reason'] || undefined
|
||||||
|
const mute = this.form.value['mute']
|
||||||
|
|
||||||
this.userAdminService.banUsers(this.usersToBan, reason)
|
this.userAdminService.banUsers(this.usersToBan, reason)
|
||||||
.subscribe({
|
.subscribe({
|
||||||
|
@ -61,6 +66,23 @@ export class UserBanModalComponent extends FormReactive implements OnInit {
|
||||||
this.notifier.success(message)
|
this.notifier.success(message)
|
||||||
|
|
||||||
this.userBanned.emit(this.usersToBan)
|
this.userBanned.emit(this.usersToBan)
|
||||||
|
|
||||||
|
if (mute) {
|
||||||
|
const users = Array.isArray(this.usersToBan) ? this.usersToBan : [ this.usersToBan ]
|
||||||
|
users.forEach(user => {
|
||||||
|
const account = new Account(user.account)
|
||||||
|
this.blocklistService.blockAccountByInstance(account)
|
||||||
|
.subscribe({
|
||||||
|
next: () => {
|
||||||
|
this.notifier.success($localize`Account ${user.username} muted by the instance.`)
|
||||||
|
account.mutedByInstance = true
|
||||||
|
},
|
||||||
|
|
||||||
|
error: err => this.notifier.error(err.message)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
this.hide()
|
this.hide()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue