-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path31091af1.fa459d52.js
1 lines (1 loc) · 5.44 KB
/
31091af1.fa459d52.js
1
"use strict";(self.webpackChunkadminforth=self.webpackChunkadminforth||[]).push([[103],{6463:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>t,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"tutorial/Plugins/open-signup","title":"Open Signup","description":"Open Signup plugin allows users to register in adminforth by them-selfs without admin.","source":"@site/docs/tutorial/05-Plugins/09-open-signup.md","sourceDirName":"tutorial/05-Plugins","slug":"/tutorial/Plugins/open-signup","permalink":"/docs/tutorial/Plugins/open-signup","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":9,"frontMatter":{},"sidebar":"tutorialSidebar","previous":{"title":"Import-Export","permalink":"/docs/tutorial/Plugins/import-export"},"next":{"title":"Internationalization (i18n)","permalink":"/docs/tutorial/Plugins/i18n"}}');var a=i(4848),r=i(8453);const t={},l="Open Signup",d={},o=[{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Email verification",id:"email-verification",level:2}];function c(e){const n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.header,{children:(0,a.jsx)(n.h1,{id:"open-signup",children:"Open Signup"})}),"\n",(0,a.jsx)(n.p,{children:"Open Signup plugin allows users to register in adminforth by them-selfs without admin.\nThis is useful when you want to allow anyone to sign up and assign some low-level permissions to them."}),"\n",(0,a.jsx)(n.h2,{id:"installation",children:"Installation"}),"\n",(0,a.jsx)(n.p,{children:"To install the plugin:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npm install @adminforth/open-signup --save\n"})}),"\n",(0,a.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsx)(n.p,{children:"To use the plugin, instantiate to to user resource:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/adminuser.ts"',children:"import OpenSignupPlugin from '@adminforth/open-signup';\n"})}),"\n",(0,a.jsx)(n.p,{children:"Like this:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:'title="./resources/adminuser.ts"',children:"new OpenSignupPlugin({\n emailField: 'email',\n passwordField: 'password',\n passwordHashField: 'password_hash',\n defaultFieldValues: {\n role: 'user',\n },\n }),\n"})}),"\n",(0,a.jsx)(n.p,{children:"Please note that in this mode users will be able to sign up without email verification. For enabling email verification, see below."}),"\n",(0,a.jsx)(n.h2,{id:"email-verification",children:"Email verification"}),"\n",(0,a.jsxs)(n.p,{children:["First, you need to migrate the ",(0,a.jsx)(n.code,{children:"adminuser"})," table in ",(0,a.jsx)(n.code,{children:"./schema.prisma"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",metastring:"title='./schema.prisma'",children:"model adminuser {\n ...\n //diff-add\n email_confirmed Boolean? @default(false)\n}\n"})}),"\n",(0,a.jsx)(n.p,{children:"And prisma migrate:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npx --yes prisma migrate dev --name add-email-confirmed-to-adminuser\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Next, install the ",(0,a.jsx)(n.code,{children:"@adminforth/email-adapter-aws-ses"})," package:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"npm i @adminforth/email-adapter-aws-ses --save\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Also, update the resource configuration in ",(0,a.jsx)(n.code,{children:"./resources/adminuser.ts"}),":"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-ts",metastring:"title='./resources/adminuser.ts'",children:'...\n//diff-add\nimport EmailAdapterAwsSes from \'@adminforth/email-adapter-aws-ses\';\n\nexport default {\n dataSource: \'maindb\',\n table: \'adminuser\',\n resourceId: \'adminuser\',\n label: \'Users\',\n recordLabel: (r) => `\ud83d\udc64 ${r.email}`,\n columns: [\n ...\n //diff-add\n { name: \'email_confirmed\' }\n ],\n ...\n plugins: [\n ...\n new OpenSignupPlugin({\n emailField: "email",\n passwordField: "password",\n passwordHashField: "password_hash",\n defaultFieldValues: {\n role: "user",\n },\n //diff-add\n confirmEmails: {\n //diff-add\n emailConfirmedField: "email_confirmed",\n //diff-add\n sendFrom: "no-reply@devforth.io",\n //diff-add\n adapter: new EmailAdapterAwsSes({\n //diff-add\n region: "eu-central-1",\n //diff-add\n accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,\n //diff-add\n secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,\n //diff-add\n }),\n //diff-add\n },\n }),\n ...\n ],\n ...\n}\n'})})]})}function u(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>l});var s=i(6540);const a={},r=s.createContext(a);function t(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:t(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);