feat: add app & admin cookie secure variable to dashboard

Todo: Generate graphql (i don't work on my PC (Windows))
This commit is contained in:
Jerebtw 2022-09-27 23:17:58 +02:00
parent 89cea39c41
commit 0e3242372b
No known key found for this signature in database
GPG Key ID: F0B5239967E4BD76
5 changed files with 219 additions and 128 deletions

View File

@ -1,133 +1,157 @@
import React from 'react'; import React from "react";
import { Divider, Flex, Stack, Text } from '@chakra-ui/react'; import { Divider, Flex, Stack, Text } from "@chakra-ui/react";
import InputField from '../InputField'; import InputField from "../InputField";
import { SwitchInputType } from '../../constants'; import { SwitchInputType } from "../../constants";
const Features = ({ variables, setVariables }: any) => { const Features = ({ variables, setVariables }: any) => {
return ( return (
<div> <div>
{' '} {" "}
<Text fontSize="md" paddingTop="2%" fontWeight="bold" mb={5}> <Text fontSize="md" paddingTop="2%" fontWeight="bold" mb={5}>
Disable Features Disable Features
</Text> </Text>
<Stack spacing={6}> <Stack spacing={6}>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Login Page:</Text> <Text fontSize="sm">Disable secure app cookie:</Text>
</Flex> </Flex>
<Flex justifyContent="start"> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_LOGIN_PAGE} inputType={SwitchInputType.DISABLE_APP_COOKIE_SECURE}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Email Verification:</Text> <Text fontSize="sm">Disable secure admin cookie:</Text>
</Flex> </Flex>
<Flex justifyContent="start"> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_EMAIL_VERIFICATION} inputType={SwitchInputType.DISABLE_ADMIN_COOKIE_SECURE}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Magic Login Link:</Text> <Text fontSize="sm">Disable Login Page:</Text>
</Flex> </Flex>
<Flex justifyContent="start"> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_MAGIC_LINK_LOGIN} inputType={SwitchInputType.DISABLE_LOGIN_PAGE}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Basic Authentication:</Text> <Text fontSize="sm">Disable Email Verification:</Text>
</Flex> </Flex>
<Flex justifyContent="start"> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_BASIC_AUTHENTICATION} inputType={SwitchInputType.DISABLE_EMAIL_VERIFICATION}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Sign Up:</Text> <Text fontSize="sm">Disable Magic Login Link:</Text>
</Flex> </Flex>
<Flex justifyContent="start" mb={3}> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_SIGN_UP} inputType={SwitchInputType.DISABLE_MAGIC_LINK_LOGIN}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex> <Flex>
<Flex w="100%" justifyContent="start" alignItems="center"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm">Disable Strong Password:</Text> <Text fontSize="sm">Disable Basic Authentication:</Text>
</Flex> </Flex>
<Flex justifyContent="start" mb={3}> <Flex justifyContent="start">
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.DISABLE_STRONG_PASSWORD} inputType={SwitchInputType.DISABLE_BASIC_AUTHENTICATION}
/> />
</Flex> </Flex>
</Flex> </Flex>
<Flex alignItems="center"> <Flex>
<Flex w="100%" alignItems="baseline" flexDir="column"> <Flex w="100%" justifyContent="start" alignItems="center">
<Text fontSize="sm"> <Text fontSize="sm">Disable Sign Up:</Text>
Disable Multi Factor Authentication (MFA): </Flex>
</Text> <Flex justifyContent="start" mb={3}>
<Text fontSize="x-small"> <InputField
Note: Enabling this will ignore Enforcing MFA shown below and will variables={variables}
also ignore the user MFA setting. setVariables={setVariables}
</Text> inputType={SwitchInputType.DISABLE_SIGN_UP}
</Flex> />
<Flex justifyContent="start" mb={3}> </Flex>
<InputField </Flex>
variables={variables} <Flex>
setVariables={setVariables} <Flex w="100%" justifyContent="start" alignItems="center">
inputType={SwitchInputType.DISABLE_MULTI_FACTOR_AUTHENTICATION} <Text fontSize="sm">Disable Strong Password:</Text>
/> </Flex>
</Flex> <Flex justifyContent="start" mb={3}>
</Flex> <InputField
</Stack> variables={variables}
<Divider paddingY={5} /> setVariables={setVariables}
<Text fontSize="md" paddingTop={5} fontWeight="bold" mb={5}> inputType={SwitchInputType.DISABLE_STRONG_PASSWORD}
Enable Features />
</Text> </Flex>
<Stack spacing={6}> </Flex>
<Flex alignItems="center"> <Flex alignItems="center">
<Flex w="100%" alignItems="baseline" flexDir="column"> <Flex w="100%" alignItems="baseline" flexDir="column">
<Text fontSize="sm"> <Text fontSize="sm">
Enforce Multi Factor Authentication (MFA): Disable Multi Factor Authentication (MFA):
</Text> </Text>
<Text fontSize="x-small"> <Text fontSize="x-small">
Note: If you disable enforcing after it was enabled, it will still Note: Enabling this will ignore Enforcing MFA shown below and will
keep MFA enabled for older users. also ignore the user MFA setting.
</Text> </Text>
</Flex> </Flex>
<Flex justifyContent="start" mb={3}> <Flex justifyContent="start" mb={3}>
<InputField <InputField
variables={variables} variables={variables}
setVariables={setVariables} setVariables={setVariables}
inputType={SwitchInputType.ENFORCE_MULTI_FACTOR_AUTHENTICATION} inputType={SwitchInputType.DISABLE_MULTI_FACTOR_AUTHENTICATION}
/> />
</Flex> </Flex>
</Flex> </Flex>
</Stack> </Stack>
</div> <Divider paddingY={5} />
); <Text fontSize="md" paddingTop={5} fontWeight="bold" mb={5}>
Enable Features
</Text>
<Stack spacing={6}>
<Flex alignItems="center">
<Flex w="100%" alignItems="baseline" flexDir="column">
<Text fontSize="sm">
Enforce Multi Factor Authentication (MFA):
</Text>
<Text fontSize="x-small">
Note: If you disable enforcing after it was enabled, it will still
keep MFA enabled for older users.
</Text>
</Flex>
<Flex justifyContent="start" mb={3}>
<InputField
variables={variables}
setVariables={setVariables}
inputType={SwitchInputType.ENFORCE_MULTI_FACTOR_AUTHENTICATION}
/>
</Flex>
</Flex>
</Stack>
</div>
);
}; };
export default Features; export default Features;

View File

@ -63,6 +63,8 @@ export const TextAreaInputType = {
}; };
export const SwitchInputType = { export const SwitchInputType = {
DISABLE_APP_COOKIE_SECURE: 'DISABLE_APP_COOKIE_SECURE',
DISABLE_ADMIN_COOKIE_SECURE: 'DISABLE_ADMIN_COOKIE_SECURE',
DISABLE_LOGIN_PAGE: 'DISABLE_LOGIN_PAGE', DISABLE_LOGIN_PAGE: 'DISABLE_LOGIN_PAGE',
DISABLE_MAGIC_LINK_LOGIN: 'DISABLE_MAGIC_LINK_LOGIN', DISABLE_MAGIC_LINK_LOGIN: 'DISABLE_MAGIC_LINK_LOGIN',
DISABLE_EMAIL_VERIFICATION: 'DISABLE_EMAIL_VERIFICATION', DISABLE_EMAIL_VERIFICATION: 'DISABLE_EMAIL_VERIFICATION',
@ -133,6 +135,8 @@ export interface envVarTypes {
ORGANIZATION_LOGO: string; ORGANIZATION_LOGO: string;
CUSTOM_ACCESS_TOKEN_SCRIPT: string; CUSTOM_ACCESS_TOKEN_SCRIPT: string;
ADMIN_SECRET: string; ADMIN_SECRET: string;
DISABLE_APP_COOKIE_SECURE: boolean;
DISABLE_ADMIN_COOKIE_SECURE: boolean;
DISABLE_LOGIN_PAGE: boolean; DISABLE_LOGIN_PAGE: boolean;
DISABLE_MAGIC_LINK_LOGIN: boolean; DISABLE_MAGIC_LINK_LOGIN: boolean;
DISABLE_EMAIL_VERIFICATION: boolean; DISABLE_EMAIL_VERIFICATION: boolean;

View File

@ -50,6 +50,8 @@ export const EnvVariablesQuery = `
ORGANIZATION_NAME ORGANIZATION_NAME
ORGANIZATION_LOGO ORGANIZATION_LOGO
ADMIN_SECRET ADMIN_SECRET
DISABLE_APP_COOKIE_SECURE
DISABLE_ADMIN_COOKIE_SECURE
DISABLE_LOGIN_PAGE DISABLE_LOGIN_PAGE
DISABLE_MAGIC_LINK_LOGIN DISABLE_MAGIC_LINK_LOGIN
DISABLE_EMAIL_VERIFICATION DISABLE_EMAIL_VERIFICATION

View File

@ -71,6 +71,8 @@ const Environment = () => {
ORGANIZATION_LOGO: '', ORGANIZATION_LOGO: '',
CUSTOM_ACCESS_TOKEN_SCRIPT: '', CUSTOM_ACCESS_TOKEN_SCRIPT: '',
ADMIN_SECRET: '', ADMIN_SECRET: '',
DISABLE_APP_COOKIE_SECURE: false,
DISABLE_ADMIN_COOKIE_SECURE: false,
DISABLE_LOGIN_PAGE: false, DISABLE_LOGIN_PAGE: false,
DISABLE_MAGIC_LINK_LOGIN: false, DISABLE_MAGIC_LINK_LOGIN: false,
DISABLE_EMAIL_VERIFICATION: false, DISABLE_EMAIL_VERIFICATION: false,

View File

@ -94,6 +94,7 @@ type Response {
} }
type Env { type Env {
<<<<<<< HEAD
ACCESS_TOKEN_EXPIRY_TIME: String ACCESS_TOKEN_EXPIRY_TIME: String
ADMIN_SECRET: String ADMIN_SECRET: String
DATABASE_NAME: String DATABASE_NAME: String
@ -146,6 +147,62 @@ type Env {
TWITTER_CLIENT_SECRET: String TWITTER_CLIENT_SECRET: String
ORGANIZATION_NAME: String ORGANIZATION_NAME: String
ORGANIZATION_LOGO: String ORGANIZATION_LOGO: String
=======
ACCESS_TOKEN_EXPIRY_TIME: String
ADMIN_SECRET: String
DATABASE_NAME: String
DATABASE_URL: String
DATABASE_TYPE: String
DATABASE_USERNAME: String
DATABASE_PASSWORD: String
DATABASE_HOST: String
DATABASE_PORT: String
CLIENT_ID: String!
CLIENT_SECRET: String!
CUSTOM_ACCESS_TOKEN_SCRIPT: String
SMTP_HOST: String
SMTP_PORT: String
SMTP_USERNAME: String
SMTP_PASSWORD: String
SENDER_EMAIL: String
JWT_TYPE: String
JWT_SECRET: String
JWT_PRIVATE_KEY: String
JWT_PUBLIC_KEY: String
ALLOWED_ORIGINS: [String!]
APP_URL: String
REDIS_URL: String
RESET_PASSWORD_URL: String
DISABLE_APP_COOKIE_SECURE: Boolean!
DISABLE_ADMIN_COOKIE_SECURE: Boolean!
DISABLE_EMAIL_VERIFICATION: Boolean!
DISABLE_BASIC_AUTHENTICATION: Boolean!
DISABLE_MAGIC_LINK_LOGIN: Boolean!
DISABLE_LOGIN_PAGE: Boolean!
DISABLE_SIGN_UP: Boolean!
DISABLE_REDIS_FOR_ENV: Boolean!
DISABLE_STRONG_PASSWORD: Boolean!
DISABLE_MULTI_FACTOR_AUTHENTICATION: Boolean!
ENFORCE_MULTI_FACTOR_AUTHENTICATION: Boolean!
ROLES: [String!]
PROTECTED_ROLES: [String!]
DEFAULT_ROLES: [String!]
JWT_ROLE_CLAIM: String
GOOGLE_CLIENT_ID: String
GOOGLE_CLIENT_SECRET: String
GITHUB_CLIENT_ID: String
GITHUB_CLIENT_SECRET: String
FACEBOOK_CLIENT_ID: String
FACEBOOK_CLIENT_SECRET: String
LINKEDIN_CLIENT_ID: String
LINKEDIN_CLIENT_SECRET: String
APPLE_CLIENT_ID: String
APPLE_CLIENT_SECRET: String
TWITTER_CLIENT_ID: String
TWITTER_CLIENT_SECRET: String
ORGANIZATION_NAME: String
ORGANIZATION_LOGO: String
>>>>>>> 238e4e8 (feat: add app & admin cookie secure variable to dashboard)
} }
type ValidateJWTTokenResponse { type ValidateJWTTokenResponse {
@ -225,6 +282,8 @@ input UpdateEnvInput {
ALLOWED_ORIGINS: [String!] ALLOWED_ORIGINS: [String!]
APP_URL: String APP_URL: String
RESET_PASSWORD_URL: String RESET_PASSWORD_URL: String
DISABLE_APP_COOKIE_SECURE: Boolean
DISABLE_ADMIN_COOKIE_SECURE: Boolean
DISABLE_EMAIL_VERIFICATION: Boolean DISABLE_EMAIL_VERIFICATION: Boolean
DISABLE_BASIC_AUTHENTICATION: Boolean DISABLE_BASIC_AUTHENTICATION: Boolean
DISABLE_MAGIC_LINK_LOGIN: Boolean DISABLE_MAGIC_LINK_LOGIN: Boolean