peertube-plugin-livechat/server/lib/helpers.ts
2021-04-12 20:52:21 +02:00

43 lines
1.2 KiB
TypeScript

import { Response } from 'express'
const packagejson: any = require('../../../package.json')
const version: string = packagejson.version || ''
if (!/^\d+\.\d+\.\d+/.test(version)) {
throw new Error('Incorrect version in package.json.')
}
const pluginName: string = packagejson.name || ''
if (!/^peertube-plugin-[-a-z]+$/.test(pluginName)) {
throw new Error('Incorrect plugin name in package.json.')
}
const pluginShortName = pluginName.substring('peertube-plugin-'.length)
// FIXME: in Peertube <= 3.1.0, PeertubeHelpers dont provide this function
function getBaseRouter (): string {
return '/plugins/' + pluginShortName + '/router/'
}
// FIXME: in Peertube <= 3.1.0, PeertubeHelpers dont provide this function
function getBaseStaticRoute (): string {
return '/plugins/' + pluginShortName + '/' + version + '/static/'
}
// FIXME: Peertube <= 3.1.0 has no way to test that current user is admin
// This is a hack.
function isUserAdmin (res: Response): boolean {
if (!res.locals?.authenticated) {
return false
}
if (res.locals?.oauth?.token?.User?.role === 0) {
return true
}
return false
}
export {
getBaseRouter,
getBaseStaticRoute,
isUserAdmin,
pluginName,
pluginShortName
}