mirror of https://github.com/Chocobozzz/PeerTube
(plugins) adding signup scope and init hook, modifying ensureUserRegistrationAllowed allowedParams
parent
efcd6f2e62
commit
ba7b7e572f
|
@ -6,6 +6,7 @@ import { UserRegister } from '@shared/models/users/user-register.model'
|
||||||
import { FormGroup } from '@angular/forms'
|
import { FormGroup } from '@angular/forms'
|
||||||
import { About } from '@shared/models/server'
|
import { About } from '@shared/models/server'
|
||||||
import { InstanceService } from '@app/shared/instance/instance.service'
|
import { InstanceService } from '@app/shared/instance/instance.service'
|
||||||
|
import { HooksService } from '@app/core/plugins/hooks.service'
|
||||||
import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbAccordion } from '@ng-bootstrap/ng-bootstrap'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -41,6 +42,7 @@ export class RegisterComponent implements OnInit {
|
||||||
private serverService: ServerService,
|
private serverService: ServerService,
|
||||||
private redirectService: RedirectService,
|
private redirectService: RedirectService,
|
||||||
private instanceService: InstanceService,
|
private instanceService: InstanceService,
|
||||||
|
private hooks: HooksService,
|
||||||
private i18n: I18n
|
private i18n: I18n
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
@ -60,6 +62,8 @@ export class RegisterComponent implements OnInit {
|
||||||
|
|
||||||
err => this.notifier.error(err.message)
|
err => this.notifier.error(err.message)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
this.hooks.runAction('action:signup.register.init', 'signup')
|
||||||
}
|
}
|
||||||
|
|
||||||
hasSameChannelAndAccountNames () {
|
hasSameChannelAndAccountNames () {
|
||||||
|
@ -94,10 +98,13 @@ export class RegisterComponent implements OnInit {
|
||||||
if (this.accordion) this.accordion.toggle('code-of-conduct')
|
if (this.accordion) this.accordion.toggle('code-of-conduct')
|
||||||
}
|
}
|
||||||
|
|
||||||
signup () {
|
async signup () {
|
||||||
this.error = null
|
this.error = null
|
||||||
|
|
||||||
const body: UserRegister = Object.assign(this.formStepUser.value, { channel: this.formStepChannel.value })
|
const body: UserRegister = await this.hooks.wrapObject(
|
||||||
|
Object.assign(this.formStepUser.value, { channel: this.formStepChannel.value }),
|
||||||
|
'filter:api.signup.registration.create.params'
|
||||||
|
)
|
||||||
|
|
||||||
this.userService.signup(body).subscribe(
|
this.userService.signup(body).subscribe(
|
||||||
() => {
|
() => {
|
||||||
|
|
|
@ -42,7 +42,8 @@ export class PluginService implements ClientHook {
|
||||||
pluginsLoaded: { [ scope in PluginClientScope ]: ReplaySubject<boolean> } = {
|
pluginsLoaded: { [ scope in PluginClientScope ]: ReplaySubject<boolean> } = {
|
||||||
common: new ReplaySubject<boolean>(1),
|
common: new ReplaySubject<boolean>(1),
|
||||||
search: new ReplaySubject<boolean>(1),
|
search: new ReplaySubject<boolean>(1),
|
||||||
'video-watch': new ReplaySubject<boolean>(1)
|
'video-watch': new ReplaySubject<boolean>(1),
|
||||||
|
signup: new ReplaySubject<boolean>(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
translationsObservable: Observable<PluginTranslation>
|
translationsObservable: Observable<PluginTranslation>
|
||||||
|
|
|
@ -283,7 +283,8 @@ const usersVideoRatingValidator = [
|
||||||
const ensureUserRegistrationAllowed = [
|
const ensureUserRegistrationAllowed = [
|
||||||
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
|
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
|
||||||
const allowedParams = {
|
const allowedParams = {
|
||||||
body: req.body
|
body: req.body,
|
||||||
|
ip: req.ip
|
||||||
}
|
}
|
||||||
|
|
||||||
const allowedResult = await Hooks.wrapPromiseFun(
|
const allowedResult = await Hooks.wrapPromiseFun(
|
||||||
|
|
|
@ -38,7 +38,10 @@ export const clientFilterHookObject = {
|
||||||
'filter:api.search.videos.list.result': true,
|
'filter:api.search.videos.list.result': true,
|
||||||
// Filter params/result of the function that fetch video-channels according to the user search
|
// Filter params/result of the function that fetch video-channels according to the user search
|
||||||
'filter:api.search.video-channels.list.params': true,
|
'filter:api.search.video-channels.list.params': true,
|
||||||
'filter:api.search.video-channels.list.result': true
|
'filter:api.search.video-channels.list.result': true,
|
||||||
|
|
||||||
|
// Filter form
|
||||||
|
'filter:api.signup.registration.create.params': true
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ClientFilterHookName = keyof typeof clientFilterHookObject
|
export type ClientFilterHookName = keyof typeof clientFilterHookObject
|
||||||
|
@ -58,7 +61,10 @@ export const clientActionHookObject = {
|
||||||
'action:search.init': true,
|
'action:search.init': true,
|
||||||
|
|
||||||
// Fired every time Angular URL changes
|
// Fired every time Angular URL changes
|
||||||
'action:router.navigation-end': true
|
'action:router.navigation-end': true,
|
||||||
|
|
||||||
|
// Fired when the registration page is being initialized
|
||||||
|
'action:signup.register.init': true
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ClientActionHookName = keyof typeof clientActionHookObject
|
export type ClientActionHookName = keyof typeof clientActionHookObject
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
export type PluginClientScope = 'common' | 'video-watch' | 'search'
|
export type PluginClientScope = 'common' | 'video-watch' | 'search' | 'signup'
|
||||||
|
|
|
@ -3,7 +3,8 @@ export interface RegisterServerSettingOptions {
|
||||||
label: string
|
label: string
|
||||||
type: 'input'
|
type: 'input'
|
||||||
|
|
||||||
// If the setting is not private, anyone can view its value
|
// If the setting is not private, anyone can view its value (client code included)
|
||||||
|
// If the setting is private, only server-side hooks can access it
|
||||||
// Mainly used by the PeerTube client to get admin config
|
// Mainly used by the PeerTube client to get admin config
|
||||||
private: boolean
|
private: boolean
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue