mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-24 18:56:32 -05:00
fix(frontend-config): use guest access level instead of allowAnonymous
Signed-off-by: Erik Michelson <github@erik.michelson.eu>
This commit is contained in:
parent
56643ffd85
commit
1207ce7690
4 changed files with 17 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
@ -8,8 +8,8 @@ import { HttpMethod } from '../../src/handler-utils/respond-to-matching-request'
|
|||
|
||||
declare namespace Cypress {
|
||||
interface Chainable {
|
||||
loadConfig(additionalConfig?: Partial<typeof config>): Chainable<Window>,
|
||||
logIn: Chainable<Window>,
|
||||
loadConfig(additionalConfig?: Partial<typeof config>): Chainable<Window>
|
||||
logIn: Chainable<Window>
|
||||
logOut: Chainable<Window>
|
||||
}
|
||||
}
|
||||
|
@ -61,8 +61,8 @@ export const authProviders = [
|
|||
]
|
||||
|
||||
export const config = {
|
||||
allowAnonymous: true,
|
||||
allowRegister: true,
|
||||
guestAccess: 'write',
|
||||
authProviders: authProviders,
|
||||
branding: branding,
|
||||
useImageProxy: false,
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
Loading…
Reference in a new issue