]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/fixtures/peertube-plugin-test-external-auth-one/main.js
cdbaf11ac3486aeaaa7be97c912e9b125bc65172
[github/Chocobozzz/PeerTube.git] / server / tests / fixtures / peertube-plugin-test-external-auth-one / main.js
1 async function register ({
2 registerExternalAuth,
3 peertubeHelpers,
4 settingsManager,
5 unregisterExternalAuth
6 }) {
7 {
8 const result = registerExternalAuth({
9 authName: 'external-auth-1',
10 authDisplayName: () => 'External Auth 1',
11 onLogout: user => peertubeHelpers.logger.info('On logout %s', user.username),
12 onAuthRequest: (req, res) => {
13 const username = req.query.username
14
15 result.userAuthenticated({
16 req,
17 res,
18 username,
19 email: username + '@example.com'
20 })
21 }
22 })
23 }
24
25 {
26 const result = registerExternalAuth({
27 authName: 'external-auth-2',
28 authDisplayName: () => 'External Auth 2',
29 onAuthRequest: (req, res) => {
30 result.userAuthenticated({
31 req,
32 res,
33 username: 'kefka',
34 email: 'kefka@example.com',
35 role: 0,
36 displayName: 'Kefka Palazzo',
37 adminFlags: 1,
38 videoQuota: 42000,
39 videoQuotaDaily: 42100
40 })
41 },
42 hookTokenValidity: (options) => {
43 if (options.type === 'refresh') {
44 return { valid: false }
45 }
46
47 if (options.type === 'access') {
48 const token = options.token
49 const now = new Date()
50 now.setTime(now.getTime() - 5000)
51
52 const createdAt = new Date(token.createdAt)
53
54 return { valid: createdAt.getTime() >= now.getTime() }
55 }
56
57 return { valid: true }
58 }
59 })
60 }
61
62 settingsManager.onSettingsChange(settings => {
63 if (settings.disableKefka) {
64 unregisterExternalAuth('external-auth-2')
65 }
66 })
67 }
68
69 async function unregister () {
70 return
71 }
72
73 module.exports = {
74 register,
75 unregister
76 }
77
78 // ###########################################################################