2020
2121/** This class handles the upload of files into the different assetstores */
2222class UploadComponent extends AppComponent
23- {
23+ {
24+
2425 /** Helper function to create the two-level hierarchy */
2526 private function _createAssetstoreDirectory ($ directorypath )
2627 {
@@ -118,9 +119,14 @@ function uploadBitstream($bitstreamdao, $assetstoredao, $copy = false)
118119 public function createLinkItem ($ userDao , $ name , $ url , $ parent = null , $ sizebytes = 0 , $ checksum = ' ' )
119120 {
120121 $ itemModel = MidasLoader::loadModel ('Item ' );
122+ $ feedModel = MidasLoader::loadModel ('Feed ' );
121123 $ folderModel = MidasLoader::loadModel ('Folder ' );
124+ $ bitstreamModel = MidasLoader::loadModel ('Bitstream ' );
122125 $ assetstoreModel = MidasLoader::loadModel ('Assetstore ' );
126+ $ feedpolicygroupModel = MidasLoader::loadModel ('Feedpolicygroup ' );
123127 $ itemRevisionModel = MidasLoader::loadModel ('ItemRevision ' );
128+ $ feedpolicyuserModel = MidasLoader::loadModel ('Feedpolicyuser ' );
129+ $ itempolicyuserModel = MidasLoader::loadModel ('Itempolicyuser ' );
124130
125131 if ($ userDao == null )
126132 {
@@ -146,13 +152,13 @@ public function createLinkItem($userDao, $name, $url, $parent = null, $sizebytes
146152 $ item ->setPrivacyStatus (MIDAS_PRIVACY_PRIVATE ); // Must set this flag private initially
147153 $ itemModel ->save ($ item , false );
148154
149- // $feed = $feedModel->createFeed($userDao, MIDAS_FEED_CREATE_ITEM, $item);
155+ $ feed = $ feedModel ->createFeed ($ userDao , MIDAS_FEED_CREATE_ITEM , $ item );
150156
151157 $ folderModel ->addItem ($ parent , $ item );
152- $ itemModel ->copyParentPolicies ($ item , $ parent /* , $feed*/ );
158+ $ itemModel ->copyParentPolicies ($ item , $ parent , $ feed );
153159
154- // $feedpolicyuserModel->createPolicy($userDao, $feed, MIDAS_POLICY_ADMIN);
155- // $itempolicyuserModel->createPolicy($userDao, $item, MIDAS_POLICY_ADMIN);
160+ $ feedpolicyuserModel ->createPolicy ($ userDao , $ feed , MIDAS_POLICY_ADMIN );
161+ $ itempolicyuserModel ->createPolicy ($ userDao , $ item , MIDAS_POLICY_ADMIN );
156162
157163 Zend_Loader::loadClass ('ItemRevisionDao ' , BASE_PATH . '/core/models/dao ' );
158164 $ itemRevisionDao = new ItemRevisionDao ;
@@ -194,9 +200,13 @@ public function createLinkItem($userDao, $name, $url, $parent = null, $sizebytes
194200 public function createUploadedItem ($ userDao , $ name , $ path , $ parent = null , $ license = null , $ filemd5 = '' , $ copy = false , $ revOnCollision = false )
195201 {
196202 $ itemModel = MidasLoader::loadModel ('Item ' );
203+ $ feedModel = MidasLoader::loadModel ('Feed ' );
197204 $ folderModel = MidasLoader::loadModel ('Folder ' );
205+ $ bitstreamModel = MidasLoader::loadModel ('Bitstream ' );
198206 $ assetstoreModel = MidasLoader::loadModel ('Assetstore ' );
207+ $ feedpolicygroupModel = MidasLoader::loadModel ('Feedpolicygroup ' );
199208 $ itemRevisionModel = MidasLoader::loadModel ('ItemRevision ' );
209+ $ feedpolicyuserModel = MidasLoader::loadModel ('Feedpolicyuser ' );
200210 $ itempolicyuserModel = MidasLoader::loadModel ('Itempolicyuser ' );
201211
202212 if ($ userDao == null )
@@ -235,11 +245,11 @@ public function createUploadedItem($userDao, $name, $path, $parent = null, $lice
235245
236246 $ folderModel ->addItem ($ parent , $ item );
237247
238- // $feed = $feedModel->createFeed($userDao, MIDAS_FEED_CREATE_ITEM, $item);
248+ $ feed = $ feedModel ->createFeed ($ userDao , MIDAS_FEED_CREATE_ITEM , $ item );
239249
240- $ itemModel ->copyParentPolicies ($ item , $ parent /* , $feed*/ );
250+ $ itemModel ->copyParentPolicies ($ item , $ parent , $ feed );
241251 $ itempolicyuserModel ->createPolicy ($ userDao , $ item , MIDAS_POLICY_ADMIN );
242- // $feedpolicyuserModel->createPolicy($userDao, $feed, MIDAS_POLICY_ADMIN);
252+ $ feedpolicyuserModel ->createPolicy ($ userDao , $ feed , MIDAS_POLICY_ADMIN );
243253 $ this ->getLogger ()->debug ('Item uploaded ( ' .$ item ->getName ().', id= ' .$ item ->getKey ().') ' );
244254 }
245255
@@ -295,9 +305,12 @@ public function createNewRevision($userDao, $name, $path, $changes, $itemId, $it
295305 }
296306
297307 $ itemModel = MidasLoader::loadModel ('Item ' );
308+ $ feedModel = MidasLoader::loadModel ('Feed ' );
298309 $ bitstreamModel = MidasLoader::loadModel ('Bitstream ' );
299310 $ assetstoreModel = MidasLoader::loadModel ('Assetstore ' );
311+ $ feedpolicygroupModel = MidasLoader::loadModel ('Feedpolicygroup ' );
300312 $ itemRevisionModel = MidasLoader::loadModel ('ItemRevision ' );
313+ $ feedpolicyuserModel = MidasLoader::loadModel ('Feedpolicyuser ' );
301314
302315 $ item = $ itemModel ->load ($ itemId );
303316
@@ -334,6 +347,24 @@ public function createNewRevision($userDao, $name, $path, $changes, $itemId, $it
334347 $ itemRevisionDao ->setDate (date ("Y-m-d H:i:s " ));
335348 $ itemRevisionDao ->setLicenseId ($ license );
336349 $ itemModel ->addRevision ($ item , $ itemRevisionDao );
350+
351+ $ feed = $ feedModel ->createFeed ($ userDao , MIDAS_FEED_CREATE_REVISION , $ itemRevisionDao );
352+
353+ $ groupPolicies = $ item ->getItempolicygroup ();
354+ $ userPolicies = $ item ->getItempolicyuser ();
355+
356+ //copy policies
357+ if ($ feed != null && $ feed instanceof FeedDao)
358+ {
359+ foreach ($ groupPolicies as $ key => $ policy )
360+ {
361+ $ feedpolicygroupModel ->createPolicy ($ policy ->getGroup (), $ feed , $ policy ->getPolicy ());
362+ }
363+ foreach ($ userPolicies as $ key => $ policy )
364+ {
365+ $ feedpolicyuserModel ->createPolicy ($ policy ->getUser (), $ feed , $ policy ->getPolicy ());
366+ }
367+ }
337368 }
338369 else
339370 {
0 commit comments