import { getServerActor } from '@server/models/application/application'
import { guessAdditionalAttributesFromQuery } from '@server/models/video/formatter/video-format-utils'
import { MChannelBannerAccountDefault } from '@server/types/models'
-import { ActorImageType, VideoChannelCreate, VideoChannelUpdate } from '../../../shared'
-import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
+import { ActorImageType, HttpStatusCode, VideoChannelCreate, VideoChannelUpdate } from '@shared/models'
import { auditLoggerFactory, getAuditIdFromRes, VideoChannelAuditView } from '../../helpers/audit-logger'
import { resetSequelizeInstance } from '../../helpers/database-utils'
import { buildNSFWFilter, createReqFiles, getCountVideos, isUserAbleToSearchRemoteURI } from '../../helpers/express-utils'
asyncRetryTransactionMiddleware,
authenticate,
commonVideosFiltersValidator,
+ ensureCanManageChannel,
optionalAuthenticate,
paginationValidator,
setDefaultPagination,
videoPlaylistsSortValidator
} from '../../middlewares'
import {
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
videoChannelsFollowersSortValidator,
videoChannelsListValidator,
videoChannelsNameWithHostValidator,
authenticate,
reqAvatarFile,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
updateAvatarValidator,
asyncMiddleware(updateVideoChannelAvatar)
)
authenticate,
reqBannerFile,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
updateBannerValidator,
asyncMiddleware(updateVideoChannelBanner)
)
videoChannelRouter.delete('/:nameWithHost/avatar',
authenticate,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
asyncMiddleware(deleteVideoChannelAvatar)
)
videoChannelRouter.delete('/:nameWithHost/banner',
authenticate,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
asyncMiddleware(deleteVideoChannelBanner)
)
videoChannelRouter.put('/:nameWithHost',
authenticate,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
videoChannelsUpdateValidator,
asyncRetryTransactionMiddleware(updateVideoChannel)
)
videoChannelRouter.delete('/:nameWithHost',
authenticate,
+ asyncMiddleware(videoChannelsNameWithHostValidator),
+ ensureIsLocalChannel,
+ ensureCanManageChannel,
asyncMiddleware(videoChannelsRemoveValidator),
asyncRetryTransactionMiddleware(removeVideoChannel)
)
videoChannelRouter.get('/:nameWithHost/followers',
authenticate,
asyncMiddleware(videoChannelsNameWithHostValidator),
- ensureAuthUserOwnsChannelValidator,
+ ensureCanManageChannel,
paginationValidator,
videoChannelsFollowersSortValidator,
setDefaultSort,
displayOnlyForFollower,
nsfw: buildNSFWFilter(res, query.nsfw),
- withFiles: false,
videoChannelId: videoChannelInstance.id,
user: res.locals.oauth ? res.locals.oauth.token.User : undefined,
countVideos