Limit channel numbers
We can't load too much channels in selects and it helps to prevent actor name squatting
This commit is contained in:
parent
1689176a7b
commit
a3ce4ae847
2 changed files with 14 additions and 0 deletions
|
@ -431,6 +431,10 @@ const OVERVIEWS = {
|
|||
}
|
||||
}
|
||||
|
||||
const VIDEO_CHANNELS = {
|
||||
MAX_PER_USER: 20
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const SERVER_ACTOR_NAME = 'peertube'
|
||||
|
@ -725,6 +729,7 @@ export {
|
|||
VIDEO_TRANSCODING_FPS,
|
||||
FFMPEG_NICE,
|
||||
VIDEO_ABUSE_STATES,
|
||||
VIDEO_CHANNELS,
|
||||
LRU_CACHE,
|
||||
JOB_REQUEST_TIMEOUT,
|
||||
USER_PASSWORD_RESET_LIFETIME,
|
||||
|
|
|
@ -14,6 +14,7 @@ import { ActorModel } from '../../../models/activitypub/actor'
|
|||
import { isBooleanValid } from '../../../helpers/custom-validators/misc'
|
||||
import { doesLocalVideoChannelNameExist, doesVideoChannelNameWithHostExist } from '../../../helpers/middlewares'
|
||||
import { MChannelAccountDefault, MUser } from '@server/typings/models'
|
||||
import { VIDEO_CHANNELS } from '@server/initializers/constants'
|
||||
|
||||
const videoChannelsAddValidator = [
|
||||
body('name').custom(isActorPreferredUsernameValid).withMessage('Should have a valid channel name'),
|
||||
|
@ -34,6 +35,14 @@ const videoChannelsAddValidator = [
|
|||
return false
|
||||
}
|
||||
|
||||
const count = await VideoChannelModel.countByAccount(res.locals.oauth.token.User.Account.id)
|
||||
if (count > VIDEO_CHANNELS.MAX_PER_USER) {
|
||||
res.status(400)
|
||||
.send({ error: `You cannot create more than ${VIDEO_CHANNELS.MAX_PER_USER} channels` })
|
||||
.end()
|
||||
return false
|
||||
}
|
||||
|
||||
return next()
|
||||
}
|
||||
]
|
||||
|
|
Loading…
Reference in a new issue