11const {
22 getCollectionMetaData
33} = require ( '../query/collection' )
4-
5- var pug = require ( 'pug' )
6-
4+ const pug = require ( 'pug' )
75const {
86 fetchSBOLObjectRecursive
97} = require ( '../fetch/fetch-sbol-object-recursive' )
10-
118const serializeSBOL = require ( '../serializeSBOL' )
12-
13- var config = require ( '../config' )
14-
15- var loadTemplate = require ( '../loadTemplate' )
16-
17- var extend = require ( 'xtend' )
18-
19- var getUrisFromReq = require ( '../getUrisFromReq' )
20-
21- var sparql = require ( '../sparql/sparql' )
22-
9+ const config = require ( '../config' )
10+ const loadTemplate = require ( '../loadTemplate' )
11+ const extend = require ( 'xtend' )
12+ const getUrisFromReq = require ( '../getUrisFromReq' )
13+ const sparql = require ( '../sparql/sparql' )
2314const tmp = require ( 'tmp-promise' )
24-
25- var fs = require ( 'mz/fs' )
26-
15+ const fs = require ( 'mz/fs' )
2716const prepareSubmission = require ( '../prepare-submission' )
17+ const access = require ( '../auth/access' )
18+ const db = require ( '../db' )
19+ const generateGraph = require ( '../generateGraph' )
2820
2921module . exports = function ( req , res ) {
3022 req . setTimeout ( 0 ) // no timeout
@@ -74,7 +66,7 @@ module.exports = function (req, res) {
7466 var citations = [ ]
7567 var collectionUri
7668
77- const { graphUri, uri } = getUrisFromReq ( req , res )
69+ const { graphUri, baseUri , uri } = getUrisFromReq ( req , res )
7870
7971 if ( req . method === 'POST' ) {
8072 overwriteMerge = req . body . tabState === 'new' ? '0' : '2'
@@ -233,6 +225,9 @@ module.exports = function (req, res) {
233225 } )
234226 } ) . then ( ( result ) => {
235227 const { success, errorLog, resultFilename } = result
228+ let publicPrefix = config . get ( 'databasePrefix' ) + 'public/' + collectionId
229+ let privatePrefix = baseUri
230+ access . makePublic ( publicPrefix , privatePrefix , uri )
236231
237232 if ( ! success ) {
238233 if ( ! req . accepts ( 'text/html' ) ) {
@@ -251,7 +246,14 @@ module.exports = function (req, res) {
251246
252247 console . log ( 'upload' )
253248
254- return sparql . uploadFile ( null , resultFilename , 'application/rdf+xml' ) . then ( function removeSubmission ( next ) {
249+ return sparql . uploadFile ( null , resultFilename , 'application/rdf+xml' ) . then ( async function removeSubmission ( next ) {
250+ let user = await db . model . User . findOne ( { where : { graphUri : graphUri } } )
251+ let rootCollectionIdentity = config . get ( 'databasePrefix' ) + `public/${ collectionId } /${ collectionId } _collection/${ version } `
252+
253+ let graph = { }
254+ graph [ rootCollectionIdentity ] = generateGraph ( rootCollectionIdentity , { graphUri : null } ) // second param should be a user, but no user owns public graph
255+ access . grant ( user , graph , 3 , 'owner from make public' )
256+
255257 if ( req . params . version !== 'current' ) {
256258 console . log ( 'remove' )
257259
0 commit comments