From 57a02633ad0208a73f05d12616b94f16eb23e87e Mon Sep 17 00:00:00 2001 From: Limezy Date: Wed, 2 Mar 2022 12:57:58 +0700 Subject: [PATCH] Create app-03-visitor.patch --- sources/patches/app-03-visitor.patch | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sources/patches/app-03-visitor.patch diff --git a/sources/patches/app-03-visitor.patch b/sources/patches/app-03-visitor.patch new file mode 100644 index 0000000..9610897 --- /dev/null +++ b/sources/patches/app-03-visitor.patch @@ -0,0 +1,69 @@ +diff --git a/server/routes/auth/providers/req.ts b/server/routes/auth/providers/req.ts +index e69de29b..22beba6e 100644 +--- a/server/routes/auth/providers/req.ts ++++ b/server/routes/auth/providers/req.ts +@@ -0,0 +1,64 @@ ++import passport from "@outlinewiki/koa-passport"; ++import Router from "koa-router"; ++import { capitalize } from "lodash"; ++import { Strategy as ReqStrategy } from "passport-req"; ++import accountProvisioner from "@server/commands/accountProvisioner"; ++import env from "@server/env"; ++import passportMiddleware from "@server/middlewares/passport"; ++import { getAllowedDomains } from "@server/utils/authentication"; ++import { StateStore } from "@server/utils/passport"; ++ ++const router = new Router(); ++const providerName = "req"; ++const allowedDomains = getAllowedDomains(); ++ ++export const config = { ++ name: "Visitor", ++ enabled: true, ++}; ++ ++if (true) { ++ passport.use( ++ new ReqStrategy( ++ async function (req,done) { ++ try { ++ const domain = "domain.tld"; ++ const subdomain = domain.split(".")[0]; ++ const teamName = capitalize(subdomain); ++ const name = "Visitor"; ++ const email = "visitor@domain.tld"; ++ const result = await accountProvisioner({ ++ ip: req.ip, ++ team: { ++ name: teamName, ++ domain, ++ subdomain, ++ }, ++ user: { ++ name: name, ++ email: email, ++ avatarUrl: null, ++ }, ++ authenticationProvider: { ++ name: providerName, ++ providerId: domain, ++ }, ++ authentication: { ++ providerId: "1234", ++ accessToken: null, ++ refreshToken: null, ++ scopes: [], ++ }, ++ }); ++ return done(null, result.user, result); ++ } catch (err) { ++ return done(err, null); ++ } ++ } ++ ) ++ ); ++ ++ router.get("req", passportMiddleware(providerName)); ++} ++ ++export default router;