aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib/plugins/register-helpers-store.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-04-30 10:03:09 +0200
committerChocobozzz <chocobozzz@cpy.re>2020-05-04 16:21:39 +0200
commita4995eb7ac5745f62604d70f7b2225ff33916d49 (patch)
tree2dbed723d3f5a539e8f0847d914723cd7543b1b2 /server/lib/plugins/register-helpers-store.ts
parente9b0fa5c16ca196a3ba3267af4008782a3e86875 (diff)
downloadPeerTube-a4995eb7ac5745f62604d70f7b2225ff33916d49.tar.gz
PeerTube-a4995eb7ac5745f62604d70f7b2225ff33916d49.tar.zst
PeerTube-a4995eb7ac5745f62604d70f7b2225ff33916d49.zip
Add ability to unregister plugin auths
Diffstat (limited to 'server/lib/plugins/register-helpers-store.ts')
-rw-r--r--server/lib/plugins/register-helpers-store.ts24
1 files changed, 20 insertions, 4 deletions
diff --git a/server/lib/plugins/register-helpers-store.ts b/server/lib/plugins/register-helpers-store.ts
index 6317ac2cf..a3ec7ef6a 100644
--- a/server/lib/plugins/register-helpers-store.ts
+++ b/server/lib/plugins/register-helpers-store.ts
@@ -49,8 +49,8 @@ export class RegisterHelpersStore {
49 49
50 private readonly settings: RegisterServerSettingOptions[] = [] 50 private readonly settings: RegisterServerSettingOptions[] = []
51 51
52 private readonly idAndPassAuths: RegisterServerAuthPassOptions[] = [] 52 private idAndPassAuths: RegisterServerAuthPassOptions[] = []
53 private readonly externalAuths: RegisterServerAuthExternalOptions[] = [] 53 private externalAuths: RegisterServerAuthExternalOptions[] = []
54 54
55 private readonly onSettingsChangeCallbacks: ((settings: any) => void)[] = [] 55 private readonly onSettingsChangeCallbacks: ((settings: any) => void)[] = []
56 56
@@ -83,6 +83,8 @@ export class RegisterHelpersStore {
83 83
84 const registerIdAndPassAuth = this.buildRegisterIdAndPassAuth() 84 const registerIdAndPassAuth = this.buildRegisterIdAndPassAuth()
85 const registerExternalAuth = this.buildRegisterExternalAuth() 85 const registerExternalAuth = this.buildRegisterExternalAuth()
86 const unregisterIdAndPassAuth = this.buildUnregisterIdAndPassAuth()
87 const unregisterExternalAuth = this.buildUnregisterExternalAuth()
86 88
87 const peertubeHelpers = buildPluginHelpers(this.npmName) 89 const peertubeHelpers = buildPluginHelpers(this.npmName)
88 90
@@ -104,6 +106,8 @@ export class RegisterHelpersStore {
104 106
105 registerIdAndPassAuth, 107 registerIdAndPassAuth,
106 registerExternalAuth, 108 registerExternalAuth,
109 unregisterIdAndPassAuth,
110 unregisterExternalAuth,
107 111
108 peertubeHelpers 112 peertubeHelpers
109 } 113 }
@@ -179,7 +183,7 @@ export class RegisterHelpersStore {
179 private buildRegisterIdAndPassAuth () { 183 private buildRegisterIdAndPassAuth () {
180 return (options: RegisterServerAuthPassOptions) => { 184 return (options: RegisterServerAuthPassOptions) => {
181 if (!options.authName || typeof options.getWeight !== 'function' || typeof options.login !== 'function') { 185 if (!options.authName || typeof options.getWeight !== 'function' || typeof options.login !== 'function') {
182 logger.error('Cannot register auth plugin %s: authName of getWeight or login are not valid.', this.npmName) 186 logger.error('Cannot register auth plugin %s: authName, getWeight or login are not valid.', this.npmName, { options })
183 return 187 return
184 } 188 }
185 189
@@ -192,7 +196,7 @@ export class RegisterHelpersStore {
192 196
193 return (options: RegisterServerAuthExternalOptions) => { 197 return (options: RegisterServerAuthExternalOptions) => {
194 if (!options.authName || typeof options.authDisplayName !== 'function' || typeof options.onAuthRequest !== 'function') { 198 if (!options.authName || typeof options.authDisplayName !== 'function' || typeof options.onAuthRequest !== 'function') {
195 logger.error('Cannot register auth plugin %s: authName of getWeight or login are not valid.', this.npmName) 199 logger.error('Cannot register auth plugin %s: authName, authDisplayName or onAuthRequest are not valid.', this.npmName, { options })
196 return 200 return
197 } 201 }
198 202
@@ -212,6 +216,18 @@ export class RegisterHelpersStore {
212 } 216 }
213 } 217 }
214 218
219 private buildUnregisterExternalAuth () {
220 return (authName: string) => {
221 this.externalAuths = this.externalAuths.filter(a => a.authName !== authName)
222 }
223 }
224
225 private buildUnregisterIdAndPassAuth () {
226 return (authName: string) => {
227 this.idAndPassAuths = this.idAndPassAuths.filter(a => a.authName !== authName)
228 }
229 }
230
215 private buildSettingsManager (): PluginSettingsManager { 231 private buildSettingsManager (): PluginSettingsManager {
216 return { 232 return {
217 getSetting: (name: string) => PluginModel.getSetting(this.plugin.name, this.plugin.type, name), 233 getSetting: (name: string) => PluginModel.getSetting(this.plugin.name, this.plugin.type, name),