From 3c473d144e2c8cd9f39c8022ea4507aa3ade678e Mon Sep 17 00:00:00 2001
From: Sebastian Mihalache <sebastian.mihalache@gmail.con>
Date: Thu, 26 Jul 2018 09:47:40 +0100
Subject: [PATCH] firefight like a champion

---
 .../src/components/SubmitRevision.js             |  7 ++++++-
 packages/xpub-faraday/config/authsome-mode.js    | 16 +++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/packages/component-manuscript/src/components/SubmitRevision.js b/packages/component-manuscript/src/components/SubmitRevision.js
index 837e46485..e1fd229e1 100644
--- a/packages/component-manuscript/src/components/SubmitRevision.js
+++ b/packages/component-manuscript/src/components/SubmitRevision.js
@@ -96,7 +96,12 @@ const SubmitRevision = ({
         <CustomValidatedField>
           <ValidatedField
             component={() => (
-              <Files filePath="revision.files" parentForm="revision" />
+              <Files
+                filePath="revision.files"
+                parentForm="revision"
+                project={project}
+                version={version}
+              />
             )}
             name="files"
             validate={[requiredFiles]}
diff --git a/packages/xpub-faraday/config/authsome-mode.js b/packages/xpub-faraday/config/authsome-mode.js
index 6ab6182b5..2c9efc4c7 100644
--- a/packages/xpub-faraday/config/authsome-mode.js
+++ b/packages/xpub-faraday/config/authsome-mode.js
@@ -135,12 +135,18 @@ async function applyAuthenticatedUserPolicy(user, operation, object, context) {
         p => p.objectId === object.id || p.objectId === object.collectionId,
       )
 
-      if (!permission) return false
-
       const collectionId = get(object, 'collectionId')
-      const { status, fragments } = await context.models.Collection.find(
-        collectionId,
-      )
+      const {
+        owners,
+        status,
+        fragments,
+      } = await context.models.Collection.find(collectionId)
+
+      if (owners.includes(user.id)) {
+        return true
+      }
+
+      if (!permission) return false
 
       return {
         filter: fragment =>
-- 
GitLab