From b31d72625dd32143a45277528b90bb67a881f249 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 5 May 2021 15:26:28 +0200 Subject: Plugin user.getAuthUser is now async So we can load the full user --- server/lib/plugins/plugin-helpers-builder.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'server/lib/plugins') diff --git a/server/lib/plugins/plugin-helpers-builder.ts b/server/lib/plugins/plugin-helpers-builder.ts index d57c69ef0..f1bc24d8b 100644 --- a/server/lib/plugins/plugin-helpers-builder.ts +++ b/server/lib/plugins/plugin-helpers-builder.ts @@ -17,6 +17,7 @@ import { VideoBlacklistCreate } from '@shared/models' import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../blocklist' import { getServerConfig } from '../config' import { blacklistVideo, unblacklistVideo } from '../video-blacklist' +import { UserModel } from '@server/models/account/user' function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHelpers { const logger = buildPluginLogger(npmName) @@ -163,6 +164,11 @@ function buildPluginRelatedHelpers (plugin: MPlugin, npmName: string) { function buildUserHelpers () { return { - getAuthUser: (res: express.Response) => res.locals.oauth?.token?.User + getAuthUser: (res: express.Response) => { + const user = res.locals.oauth?.token?.User + if (!user) return undefined + + return UserModel.loadByIdFull(user.id) + } } } -- cgit v1.2.3 From c07902b9083ab5756436cd020bed5bdfa51028bf Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 11 May 2021 10:57:25 +0200 Subject: Move transcoding files in their own directory --- server/lib/plugins/register-helpers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'server/lib/plugins') diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index aa69ca2a2..203217b70 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -29,7 +29,7 @@ import { RegisterServerSettingOptions } from '@shared/models' import { serverHookObject } from '@shared/models/plugins/server-hook.model' -import { VideoTranscodingProfilesManager } from '../video-transcoding-profiles' +import { VideoTranscodingProfilesManager } from '../transcoding/video-transcoding-profiles' import { buildPluginHelpers } from './plugin-helpers-builder' type AlterableVideoConstant = 'language' | 'licence' | 'category' | 'privacy' | 'playlistPrivacy' -- cgit v1.2.3 From 7d9ba5c08999c6482f0bc5e0c09c6f55b7724090 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 11 May 2021 11:15:29 +0200 Subject: Cleanup models directory organization --- server/lib/plugins/plugin-helpers-builder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'server/lib/plugins') diff --git a/server/lib/plugins/plugin-helpers-builder.ts b/server/lib/plugins/plugin-helpers-builder.ts index f1bc24d8b..cb1cd4d9a 100644 --- a/server/lib/plugins/plugin-helpers-builder.ts +++ b/server/lib/plugins/plugin-helpers-builder.ts @@ -17,7 +17,7 @@ import { VideoBlacklistCreate } from '@shared/models' import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../blocklist' import { getServerConfig } from '../config' import { blacklistVideo, unblacklistVideo } from '../video-blacklist' -import { UserModel } from '@server/models/account/user' +import { UserModel } from '@server/models/user/user' function buildPluginHelpers (pluginModel: MPlugin, npmName: string): PeerTubeHelpers { const logger = buildPluginLogger(npmName) -- cgit v1.2.3 From 428ccb8b7a44ce60cabb7401a5464cf5fcbd4dba Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 11 May 2021 12:04:47 +0200 Subject: Reorganize plugin models --- server/lib/plugins/hooks.ts | 6 +++--- server/lib/plugins/plugin-index.ts | 20 ++++++++++---------- server/lib/plugins/plugin-manager.ts | 14 ++++---------- server/lib/plugins/register-helpers.ts | 4 ++-- 4 files changed, 19 insertions(+), 25 deletions(-) (limited to 'server/lib/plugins') diff --git a/server/lib/plugins/hooks.ts b/server/lib/plugins/hooks.ts index aa92f03cc..5e97b52a0 100644 --- a/server/lib/plugins/hooks.ts +++ b/server/lib/plugins/hooks.ts @@ -1,7 +1,7 @@ -import { ServerActionHookName, ServerFilterHookName } from '../../../shared/models/plugins/server-hook.model' -import { PluginManager } from './plugin-manager' -import { logger } from '../../helpers/logger' import * as Bluebird from 'bluebird' +import { ServerActionHookName, ServerFilterHookName } from '../../../shared/models' +import { logger } from '../../helpers/logger' +import { PluginManager } from './plugin-manager' type PromiseFunction = (params: U) => Promise | Bluebird type RawFunction = (params: U) => T diff --git a/server/lib/plugins/plugin-index.ts b/server/lib/plugins/plugin-index.ts index 165bc91b3..119cee8e0 100644 --- a/server/lib/plugins/plugin-index.ts +++ b/server/lib/plugins/plugin-index.ts @@ -1,16 +1,16 @@ import { sanitizeUrl } from '@server/helpers/core-utils' -import { ResultList } from '../../../shared/models' -import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model' -import { PeerTubePluginIndex } from '../../../shared/models/plugins/peertube-plugin-index.model' +import { logger } from '@server/helpers/logger' +import { doJSONRequest } from '@server/helpers/requests' +import { CONFIG } from '@server/initializers/config' +import { PEERTUBE_VERSION } from '@server/initializers/constants' +import { PluginModel } from '@server/models/server/plugin' import { + PeerTubePluginIndex, + PeertubePluginIndexList, PeertubePluginLatestVersionRequest, - PeertubePluginLatestVersionResponse -} from '../../../shared/models/plugins/peertube-plugin-latest-version.model' -import { logger } from '../../helpers/logger' -import { doJSONRequest } from '../../helpers/requests' -import { CONFIG } from '../../initializers/config' -import { PEERTUBE_VERSION } from '../../initializers/constants' -import { PluginModel } from '../../models/server/plugin' + PeertubePluginLatestVersionResponse, + ResultList +} from '@shared/models' import { PluginManager } from './plugin-manager' async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) { diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index ba9814383..6b9a255a4 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts @@ -4,16 +4,11 @@ import { createReadStream, createWriteStream } from 'fs' import { ensureDir, outputFile, readJSON } from 'fs-extra' import { basename, join } from 'path' import { MOAuthTokenUser, MUser } from '@server/types/models' -import { RegisterServerHookOptions } from '@shared/models/plugins/register-server-hook.model' +import { getCompleteLocale } from '@shared/core-utils' +import { ClientScript, PluginPackageJson, PluginTranslation, PluginTranslationPaths, RegisterServerHookOptions } from '@shared/models' import { getHookType, internalRunHook } from '../../../shared/core-utils/plugins/hooks' -import { - ClientScript, - PluginPackageJson, - PluginTranslationPaths as PackagePluginTranslations -} from '../../../shared/models/plugins/plugin-package-json.model' -import { PluginTranslation } from '../../../shared/models/plugins/plugin-translation.model' import { PluginType } from '../../../shared/models/plugins/plugin.type' -import { ServerHook, ServerHookName } from '../../../shared/models/plugins/server-hook.model' +import { ServerHook, ServerHookName } from '../../../shared/models/plugins/server/server-hook.model' import { isLibraryCodeValid, isPackageJSONValid } from '../../helpers/custom-validators/plugins' import { logger } from '../../helpers/logger' import { CONFIG } from '../../initializers/config' @@ -23,7 +18,6 @@ import { PluginLibrary, RegisterServerAuthExternalOptions, RegisterServerAuthPas import { ClientHtml } from '../client-html' import { RegisterHelpers } from './register-helpers' import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' -import { getCompleteLocale } from '@shared/core-utils' export interface RegisteredPlugin { npmName: string @@ -443,7 +437,7 @@ export class PluginManager implements ServerHook { // ###################### Translations ###################### - private async addTranslations (plugin: PluginModel, npmName: string, translationPaths: PackagePluginTranslations) { + private async addTranslations (plugin: PluginModel, npmName: string, translationPaths: PluginTranslationPaths) { for (const locale of Object.keys(translationPaths)) { const path = translationPaths[locale] const json = await readJSON(join(this.getPluginPath(plugin.name, plugin.type), path)) diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index 203217b70..f5b573370 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -26,9 +26,9 @@ import { PluginVideoLicenceManager, PluginVideoPrivacyManager, RegisterServerHookOptions, - RegisterServerSettingOptions + RegisterServerSettingOptions, + serverHookObject } from '@shared/models' -import { serverHookObject } from '@shared/models/plugins/server-hook.model' import { VideoTranscodingProfilesManager } from '../transcoding/video-transcoding-profiles' import { buildPluginHelpers } from './plugin-helpers-builder' -- cgit v1.2.3 From 2539932e16129992a2c0889b4ff527c265a8e2c7 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 27 May 2021 15:59:55 +0200 Subject: Instance homepage support (#4007) * Prepare homepage parsers * Add ability to update instance hompage * Add ability to set homepage as landing page * Add homepage preview in admin * Dynamically update left menu for homepage * Inject home content in homepage * Add videos list and channel miniature custom markup * Remove unused elements in markup service --- server/lib/plugins/plugin-helpers-builder.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'server/lib/plugins') diff --git a/server/lib/plugins/plugin-helpers-builder.ts b/server/lib/plugins/plugin-helpers-builder.ts index cb1cd4d9a..8487672ba 100644 --- a/server/lib/plugins/plugin-helpers-builder.ts +++ b/server/lib/plugins/plugin-helpers-builder.ts @@ -15,7 +15,7 @@ import { MPlugin } from '@server/types/models' import { PeerTubeHelpers } from '@server/types/plugins' import { VideoBlacklistCreate } from '@shared/models' import { addAccountInBlocklist, addServerInBlocklist, removeAccountFromBlocklist, removeServerFromBlocklist } from '../blocklist' -import { getServerConfig } from '../config' +import { ServerConfigManager } from '../server-config-manager' import { blacklistVideo, unblacklistVideo } from '../video-blacklist' import { UserModel } from '@server/models/user/user' @@ -147,7 +147,7 @@ function buildConfigHelpers () { }, getServerConfig () { - return getServerConfig() + return ServerConfigManager.Instance.getServerConfig() } } } -- cgit v1.2.3