feat: check permissions in realtime code and frontend

Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Philip Molares 2023-03-26 14:51:18 +02:00 committed by Tilman Vatteroth
parent 24f1b2a361
commit c2f41118b6
27 changed files with 287 additions and 66 deletions
frontend/src/hooks/common

View file

@ -4,6 +4,8 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { useApplicationState } from './use-application-state'
import type { NotePermissions } from '@hedgedoc/commons'
import { userIsOwner } from '@hedgedoc/commons'
import { useMemo } from 'react'
/**
@ -12,8 +14,8 @@ import { useMemo } from 'react'
* @return True, if the current user is owner.
*/
export const useIsOwner = (): boolean => {
const owner = useApplicationState((state) => state.noteDetails.permissions.owner)
const me: string | undefined = useApplicationState((state) => state.user?.username)
const permissions: NotePermissions = useApplicationState((state) => state.noteDetails.permissions)
return useMemo(() => !!me && owner === me, [owner, me])
return useMemo(() => userIsOwner(permissions, me), [permissions, me])
}