Allow drafts to be created without requiring a collection (#4175)
* feat(server): allow document to be created without collectionId * fix(server): policies for a draft doc without collection * fix(app): hide share button for drafts * feat(server): permissions around publishing a draft * fix(server): return drafts without collection * fix(server): handle draft deletion * fix(server): show drafts in deleted docs * fix(server): allow drafts without collection to be restored * feat(server): return drafts in search results * fix: use buildDraftDocument for drafts * fix: remove isDraftWithoutCollection * fix: do not return drafts for team * fix: put invariants * fix: query clause * fix: check only for undefined * fix: restore includeDrafts clause as it was before
This commit is contained in:
@@ -21,6 +21,8 @@ type Props = {
|
||||
append?: boolean;
|
||||
/** Whether the document should be published to the collection */
|
||||
publish?: boolean;
|
||||
/** The ID of the collection to publish the document to */
|
||||
collectionId?: string;
|
||||
/** The IP address of the user creating the document */
|
||||
ip: string;
|
||||
/** The database transaction to run within */
|
||||
@@ -44,6 +46,7 @@ export default async function documentUpdater({
|
||||
fullWidth,
|
||||
append,
|
||||
publish,
|
||||
collectionId,
|
||||
transaction,
|
||||
ip,
|
||||
}: Props): Promise<Document> {
|
||||
@@ -74,7 +77,9 @@ export default async function documentUpdater({
|
||||
const changed = document.changed();
|
||||
|
||||
if (publish) {
|
||||
document.lastModifiedById = user.id;
|
||||
if (!document.collectionId) {
|
||||
document.collectionId = collectionId as string;
|
||||
}
|
||||
await document.publish(user.id, { transaction });
|
||||
|
||||
await Event.create(
|
||||
|
||||
Reference in New Issue
Block a user