video-ownership.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import { Response } from 'express'
  2. import { VideoChangeOwnershipModel } from '../../models/video/video-change-ownership'
  3. import { MVideoChangeOwnershipFull } from '@server/types/models/video/video-change-ownership'
  4. import { MUserId } from '@server/types/models'
  5. import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
  6. export async function doesChangeVideoOwnershipExist (idArg: number | string, res: Response) {
  7. const id = parseInt(idArg + '', 10)
  8. const videoChangeOwnership = await VideoChangeOwnershipModel.load(id)
  9. if (!videoChangeOwnership) {
  10. res.status(HttpStatusCode.NOT_FOUND_404)
  11. .json({ error: 'Video change ownership not found' })
  12. .end()
  13. return false
  14. }
  15. res.locals.videoChangeOwnership = videoChangeOwnership
  16. return true
  17. }
  18. export function checkUserCanTerminateOwnershipChange (user: MUserId, videoChangeOwnership: MVideoChangeOwnershipFull, res: Response) {
  19. if (videoChangeOwnership.NextOwner.userId === user.id) {
  20. return true
  21. }
  22. res.status(HttpStatusCode.FORBIDDEN_403)
  23. .json({ error: 'Cannot terminate an ownership change of another user' })
  24. .end()
  25. return false
  26. }