feat: Collection admins (#5273
* Split permissions for reading documents from updating collection * fix: Admins should have collection read permission, tests * tsc * Add admin option to permission selector * Combine publish and create permissions, update -> createDocuments where appropriate * Plural -> singular * wip * Quick version of collection structure loading, will revisit * Remove documentIds method * stash * fixing tests to account for admin creation * Add self-hosted migration * fix: Allow groups to have admin permission * Prefetch collection documents * fix: Document explorer (move/publish) not working with async documents * fix: Cannot re-parent document to collection by drag and drop * fix: Cannot drag to import into collection item without admin permission * Remove unused isEditor getter
This commit is contained in:
@@ -28,13 +28,15 @@ function DocumentMove({ document }: Props) {
|
||||
null
|
||||
);
|
||||
|
||||
const moveOptions = React.useMemo(() => {
|
||||
// filter out the document itself and also its parent doc if any
|
||||
const items = React.useMemo(() => {
|
||||
// Filter out the document itself and its existing parent doc, if any.
|
||||
const nodes = flatten(collectionTrees.map(flattenTree)).filter(
|
||||
(node) => node.id !== document.id && node.id !== document.parentDocumentId
|
||||
);
|
||||
|
||||
// If the document we're moving is a template, only show collections as
|
||||
// move targets.
|
||||
if (document.isTemplate) {
|
||||
// only show collections with children stripped off to prevent node expansion
|
||||
return nodes
|
||||
.filter((node) => node.type === "collection")
|
||||
.map((node) => ({ ...node, children: [] }));
|
||||
@@ -80,11 +82,7 @@ function DocumentMove({ document }: Props) {
|
||||
|
||||
return (
|
||||
<FlexContainer column>
|
||||
<DocumentExplorer
|
||||
items={moveOptions}
|
||||
onSubmit={move}
|
||||
onSelect={selectPath}
|
||||
/>
|
||||
<DocumentExplorer items={items} onSubmit={move} onSelect={selectPath} />
|
||||
<Footer justify="space-between" align="center" gap={8}>
|
||||
<StyledText type="secondary">
|
||||
{selectedPath ? (
|
||||
|
||||
Reference in New Issue
Block a user