fix(frontend-config): use guest access level instead of allowAnonymous

Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
Erik Michelson 2023-09-24 22:56:31 +02:00
parent 56643ffd85
commit 1207ce7690
4 changed files with 17 additions and 9 deletions

View file

@ -5,10 +5,10 @@
*/
export interface FrontendConfig {
allowAnonymous: boolean
allowRegister: boolean
authProviders: AuthProvider[]
branding: BrandingConfig
guestAccess: GuestAccessLevel
useImageProxy: boolean
specialUrls: SpecialUrls
version: BackendVersion
@ -16,6 +16,13 @@ export interface FrontendConfig {
maxDocumentLength: number
}
export enum GuestAccessLevel {
DENY = 'deny',
READ = 'read',
WRITE = 'write',
CREATE = 'create'
}
export enum AuthProviderType {
DROPBOX = 'dropbox',
FACEBOOK = 'facebook',

View file

@ -10,16 +10,17 @@ import { NewNoteButton } from '../../common/new-note-button/new-note-button'
import { HistoryButton } from '../../layout/app-bar/app-bar-elements/help-dropdown/history-button'
import { useFrontendConfig } from '../../common/frontend-config-context/use-frontend-config'
import { Trans, useTranslation } from 'react-i18next'
import { GuestAccessLevel } from '../../../api/config/types'
/**
* Renders the card with the options for not logged-in users.
*/
export const GuestCard: React.FC = () => {
const allowAnonymous = useFrontendConfig().allowAnonymous
const guestAccessLevel = useFrontendConfig().guestAccess
useTranslation()
if (!allowAnonymous) {
if (guestAccessLevel === GuestAccessLevel.DENY) {
return null
}

View file

@ -4,7 +4,7 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import type { FrontendConfig } from '../../../api/config/types'
import { AuthProviderType } from '../../../api/config/types'
import { AuthProviderType, GuestAccessLevel } from '../../../api/config/types'
import {
HttpMethod,
respondToMatchingRequest,
@ -14,12 +14,12 @@ import { isTestMode } from '../../../utils/test-modes'
import type { NextApiRequest, NextApiResponse } from 'next'
const initialConfig: FrontendConfig = {
allowAnonymous: true,
allowRegister: true,
branding: {
name: 'DEMO Corp',
logo: '/public/img/demo.png'
},
guestAccess: GuestAccessLevel.WRITE,
useImageProxy: false,
specialUrls: {
privacy: 'https://example.com/privacy',