mirror of https://github.com/Chocobozzz/PeerTube
Always be able to set email as verified
Useful for instance that do not require email verification but still want to enable the "email in podcast feed" featurepull/6266/head
parent
3a53d44246
commit
b080ccc3ee
|
@ -1,33 +1,33 @@
|
||||||
import { SortMeta, SharedModule } from 'primeng/api'
|
import { DatePipe, NgClass, NgIf } from '@angular/common'
|
||||||
import { Component, OnInit, ViewChild } from '@angular/core'
|
import { Component, OnInit, ViewChild } from '@angular/core'
|
||||||
|
import { FormsModule } from '@angular/forms'
|
||||||
import { ActivatedRoute, Router, RouterLink } from '@angular/router'
|
import { ActivatedRoute, Router, RouterLink } from '@angular/router'
|
||||||
import { AuthService, ConfirmService, LocalStorageService, Notifier, RestPagination, RestTable, ServerService } from '@app/core'
|
import { AuthService, ConfirmService, LocalStorageService, Notifier, RestPagination, RestTable } from '@app/core'
|
||||||
import { formatICU, getAPIHost } from '@app/helpers'
|
import { formatICU, getAPIHost } from '@app/helpers'
|
||||||
|
import { Actor } from '@app/shared/shared-main/account/actor.model'
|
||||||
|
import { BlocklistService } from '@app/shared/shared-moderation/blocklist.service'
|
||||||
|
import { UserBanModalComponent } from '@app/shared/shared-moderation/user-ban-modal.component'
|
||||||
|
import { UserAdminService } from '@app/shared/shared-users/user-admin.service'
|
||||||
|
import { NgbDropdown, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle, NgbTooltip } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { User, UserRole, UserRoleType } from '@peertube/peertube-models'
|
import { User, UserRole, UserRoleType } from '@peertube/peertube-models'
|
||||||
import { logger } from '@root-helpers/logger'
|
import { logger } from '@root-helpers/logger'
|
||||||
import { BytesPipe } from '../../../../shared/shared-main/angular/bytes.pipe'
|
import { SharedModule, SortMeta } from 'primeng/api'
|
||||||
import { AutoColspanDirective } from '../../../../shared/shared-main/angular/auto-colspan.directive'
|
import { TableModule } from 'primeng/table'
|
||||||
import { UserEmailInfoComponent } from '../../../shared/user-email-info.component'
|
|
||||||
import { ActorAvatarComponent } from '../../../../shared/shared-actor-image/actor-avatar.component'
|
import { ActorAvatarComponent } from '../../../../shared/shared-actor-image/actor-avatar.component'
|
||||||
|
import { AdvancedInputFilter, AdvancedInputFilterComponent } from '../../../../shared/shared-forms/advanced-input-filter.component'
|
||||||
|
import { PeertubeCheckboxComponent } from '../../../../shared/shared-forms/peertube-checkbox.component'
|
||||||
|
import { SelectCheckboxComponent } from '../../../../shared/shared-forms/select/select-checkbox.component'
|
||||||
|
import { GlobalIconComponent } from '../../../../shared/shared-icons/global-icon.component'
|
||||||
|
import { AutoColspanDirective } from '../../../../shared/shared-main/angular/auto-colspan.directive'
|
||||||
|
import { BytesPipe } from '../../../../shared/shared-main/angular/bytes.pipe'
|
||||||
|
import { ActionDropdownComponent, DropdownAction } from '../../../../shared/shared-main/buttons/action-dropdown.component'
|
||||||
import {
|
import {
|
||||||
AccountMutedStatus,
|
AccountMutedStatus,
|
||||||
UserModerationDisplayType,
|
UserModerationDisplayType,
|
||||||
UserModerationDropdownComponent
|
UserModerationDropdownComponent
|
||||||
} from '../../../../shared/shared-moderation/user-moderation-dropdown.component'
|
} from '../../../../shared/shared-moderation/user-moderation-dropdown.component'
|
||||||
import { TableExpanderIconComponent } from '../../../../shared/shared-tables/table-expander-icon.component'
|
import { TableExpanderIconComponent } from '../../../../shared/shared-tables/table-expander-icon.component'
|
||||||
import { PeertubeCheckboxComponent } from '../../../../shared/shared-forms/peertube-checkbox.component'
|
import { UserEmailInfoComponent } from '../../../shared/user-email-info.component'
|
||||||
import { FormsModule } from '@angular/forms'
|
|
||||||
import { SelectCheckboxComponent } from '../../../../shared/shared-forms/select/select-checkbox.component'
|
|
||||||
import { NgbDropdown, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbTooltip } from '@ng-bootstrap/ng-bootstrap'
|
|
||||||
import { AdvancedInputFilter, AdvancedInputFilterComponent } from '../../../../shared/shared-forms/advanced-input-filter.component'
|
|
||||||
import { ActionDropdownComponent, DropdownAction } from '../../../../shared/shared-main/buttons/action-dropdown.component'
|
|
||||||
import { NgIf, NgClass, DatePipe } from '@angular/common'
|
|
||||||
import { TableModule } from 'primeng/table'
|
|
||||||
import { GlobalIconComponent } from '../../../../shared/shared-icons/global-icon.component'
|
|
||||||
import { Actor } from '@app/shared/shared-main/account/actor.model'
|
|
||||||
import { BlocklistService } from '@app/shared/shared-moderation/blocklist.service'
|
|
||||||
import { UserBanModalComponent } from '@app/shared/shared-moderation/user-ban-modal.component'
|
|
||||||
import { UserAdminService } from '@app/shared/shared-users/user-admin.service'
|
|
||||||
|
|
||||||
type UserForList = User & {
|
type UserForList = User & {
|
||||||
rawVideoQuota: number
|
rawVideoQuota: number
|
||||||
|
@ -102,8 +102,6 @@ export class UserListComponent extends RestTable <User> implements OnInit {
|
||||||
myAccount: false
|
myAccount: false
|
||||||
}
|
}
|
||||||
|
|
||||||
requiresEmailVerification = false
|
|
||||||
|
|
||||||
private _selectedColumns: string[] = []
|
private _selectedColumns: string[] = []
|
||||||
|
|
||||||
constructor (
|
constructor (
|
||||||
|
@ -111,7 +109,6 @@ export class UserListComponent extends RestTable <User> implements OnInit {
|
||||||
protected router: Router,
|
protected router: Router,
|
||||||
private notifier: Notifier,
|
private notifier: Notifier,
|
||||||
private confirmService: ConfirmService,
|
private confirmService: ConfirmService,
|
||||||
private serverService: ServerService,
|
|
||||||
private auth: AuthService,
|
private auth: AuthService,
|
||||||
private blocklist: BlocklistService,
|
private blocklist: BlocklistService,
|
||||||
private userAdminService: UserAdminService,
|
private userAdminService: UserAdminService,
|
||||||
|
@ -135,9 +132,6 @@ export class UserListComponent extends RestTable <User> implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit () {
|
ngOnInit () {
|
||||||
this.serverService.getConfig()
|
|
||||||
.subscribe(config => this.requiresEmailVerification = config.signup.requiresEmailVerification)
|
|
||||||
|
|
||||||
this.initialize()
|
this.initialize()
|
||||||
|
|
||||||
this.bulkActions = [
|
this.bulkActions = [
|
||||||
|
@ -165,8 +159,7 @@ export class UserListComponent extends RestTable <User> implements OnInit {
|
||||||
label: $localize`Set Email as Verified`,
|
label: $localize`Set Email as Verified`,
|
||||||
handler: users => this.setEmailsAsVerified(users),
|
handler: users => this.setEmailsAsVerified(users),
|
||||||
isDisplayed: users => {
|
isDisplayed: users => {
|
||||||
return this.requiresEmailVerification &&
|
return users.every(u => this.authUser.canManage(u) && !u.blocked && u.emailVerified !== true)
|
||||||
users.every(u => this.authUser.canManage(u) && !u.blocked && u.emailVerified === false)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -366,7 +366,7 @@ export class UserModerationDropdownComponent implements OnInit, OnChanges {
|
||||||
{
|
{
|
||||||
label: $localize`Set Email as Verified`,
|
label: $localize`Set Email as Verified`,
|
||||||
handler: ({ user }) => this.setEmailAsVerified(user),
|
handler: ({ user }) => this.setEmailAsVerified(user),
|
||||||
isDisplayed: ({ user }) => this.requiresEmailVerification && !user.blocked && user.emailVerified === false
|
isDisplayed: ({ user }) => !user.blocked && user.emailVerified !== true
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue