@@ -413,6 +413,10 @@ function communityCreate($args)
413
413
}
414
414
if ($ record != false && $ record instanceof CommunityDao)
415
415
{
416
+ if (!$ communityModel ->policyCheck ($ record , $ userDao , MIDAS_POLICY_WRITE ))
417
+ {
418
+ throw new Exception ('Invalid policy ' , MIDAS_INVALID_POLICY );
419
+ }
416
420
$ record ->setName ($ name );
417
421
if (isset ($ args ['description ' ]))
418
422
{
@@ -431,7 +435,8 @@ function communityCreate($args)
431
435
}
432
436
else
433
437
{
434
- $ description = "" ;
438
+ // Policy check to make sure the user can create top level communities (admins only?)
439
+ $ description = '' ;
435
440
$ privacy = MIDAS_COMMUNITY_PUBLIC ;
436
441
$ canJoin = MIDAS_COMMUNITY_CAN_JOIN ;
437
442
if (isset ($ args ['description ' ]))
@@ -595,7 +600,7 @@ function folderCreate($args)
595
600
$ userDao = $ this ->_getUser ($ args );
596
601
if ($ userDao == false )
597
602
{
598
- throw new Exception ('Unable to find user ' , MIDAS_INVALID_TOKEN );
603
+ throw new Exception ('Cannot create folder anonymously ' , MIDAS_INVALID_POLICY );
599
604
}
600
605
601
606
$ modelLoader = new MIDAS_ModelLoader ();
@@ -610,13 +615,13 @@ function folderCreate($args)
610
615
$ componentLoader = new MIDAS_ComponentLoader ();
611
616
$ uuidComponent = $ componentLoader ->loadComponent ('Uuid ' );
612
617
$ record = $ uuidComponent ->getByUid ($ uuid );
613
- if ($ record === false || !$ folderModel ->policyCheck ($ record , $ userDao , MIDAS_POLICY_WRITE ))
614
- {
615
- throw new Exception ("This folder doesn't exist or you don't have the permissions. " , MIDAS_INVALID_POLICY );
616
- }
617
618
}
618
619
if ($ record != false && $ record instanceof FolderDao)
619
620
{
621
+ if (!$ folderModel ->policyCheck ($ record , $ userDao , MIDAS_POLICY_WRITE ))
622
+ {
623
+ throw new Exception ('Invalid policy ' , MIDAS_INVALID_POLICY );
624
+ }
620
625
$ record ->setName ($ name );
621
626
if (isset ($ args ['description ' ]))
622
627
{
@@ -635,8 +640,7 @@ function folderCreate($args)
635
640
{
636
641
throw new Exception ('Parameter parentid is not defined ' , MIDAS_INVALID_PARAMETER );
637
642
}
638
- $ parentid = $ args ['parentid ' ];
639
- $ folder = $ folderModel ->load ($ parentid );
643
+ $ folder = $ folderModel ->load ($ args ['parentid ' ]);
640
644
if ($ folder == false )
641
645
{
642
646
throw new Exception ('Parent doesn \'t exist ' , MIDAS_INVALID_PARAMETER );
@@ -650,15 +654,11 @@ function folderCreate($args)
650
654
$ policyUser = $ folder ->getFolderpolicyuser ();
651
655
foreach ($ policyGroup as $ policy )
652
656
{
653
- $ group = $ policy ->getGroup ();
654
- $ policyValue = $ policy ->getPolicy ();
655
- $ folderModelpolicygroup ->createPolicy ($ group , $ new_folder , $ policyValue );
657
+ $ folderModelpolicygroup ->createPolicy ($ policy ->getGroup (), $ new_folder , $ policy ->getPolicy ());
656
658
}
657
659
foreach ($ policyUser as $ policy )
658
660
{
659
- $ user = $ policy ->getUser ();
660
- $ policyValue = $ policy ->getPolicy ();
661
- $ folderModelpolicyuser ->createPolicy ($ user , $ new_folder , $ policyValue );
661
+ $ folderModelpolicyuser ->createPolicy ($ policy ->getUser (), $ new_folder , $ policy ->getPolicy ());
662
662
}
663
663
664
664
return $ new_folder ->toArray ();
0 commit comments