@@ -704,27 +704,34 @@ function folderCreate($args)
704
704
{
705
705
throw new Exception ('Parameter parentid is not defined ' , MIDAS_INVALID_PARAMETER );
706
706
}
707
- $ folder = $ folderModel ->load ($ args ['parentid ' ]);
708
- if ($ folder == false )
709
- {
710
- throw new Exception ('Parent doesn \'t exist ' , MIDAS_INVALID_PARAMETER );
711
- }
712
- $ new_folder = $ folderModel ->createFolder ($ name , $ description , $ folder , $ uuid );
713
- if ($ new_folder === false )
707
+ if ($ args ['parentid ' ] == -1 ) //top level user folder being created
714
708
{
715
- throw new Exception ( ' Create folder failed ' , MIDAS_INTERNAL_ERROR );
709
+ $ new_folder = $ folderModel -> createFolder ( $ name , $ description , $ userDao -> getFolderId (), $ uuid );
716
710
}
717
- $ policyGroup = $ folder ->getFolderpolicygroup ();
718
- $ policyUser = $ folder ->getFolderpolicyuser ();
719
- $ folderpolicygroupModel = $ modelLoader ->loadModel ('Folderpolicygroup ' );
720
- $ folderpolicyuserModel = $ modelLoader ->loadModel ('Folderpolicygroup ' );
721
- foreach ($ policyGroup as $ policy )
711
+ else //child of existing folder
722
712
{
723
- $ folderpolicygroupModel ->createPolicy ($ policy ->getGroup (), $ new_folder , $ policy ->getPolicy ());
724
- }
725
- foreach ($ policyUser as $ policy )
726
- {
727
- $ folderpolicyuserModel ->createPolicy ($ policy ->getUser (), $ new_folder , $ policy ->getPolicy ());
713
+ $ folder = $ folderModel ->load ($ args ['parentid ' ]);
714
+ if ($ folder == false )
715
+ {
716
+ throw new Exception ('Parent doesn \'t exist ' , MIDAS_INVALID_PARAMETER );
717
+ }
718
+ $ new_folder = $ folderModel ->createFolder ($ name , $ description , $ folder , $ uuid );
719
+ if ($ new_folder === false )
720
+ {
721
+ throw new Exception ('Create folder failed ' , MIDAS_INTERNAL_ERROR );
722
+ }
723
+ $ policyGroup = $ folder ->getFolderpolicygroup ();
724
+ $ policyUser = $ folder ->getFolderpolicyuser ();
725
+ $ folderpolicygroupModel = $ modelLoader ->loadModel ('Folderpolicygroup ' );
726
+ $ folderpolicyuserModel = $ modelLoader ->loadModel ('Folderpolicygroup ' );
727
+ foreach ($ policyGroup as $ policy )
728
+ {
729
+ $ folderpolicygroupModel ->createPolicy ($ policy ->getGroup (), $ new_folder , $ policy ->getPolicy ());
730
+ }
731
+ foreach ($ policyUser as $ policy )
732
+ {
733
+ $ folderpolicyuserModel ->createPolicy ($ policy ->getUser (), $ new_folder , $ policy ->getPolicy ());
734
+ }
728
735
}
729
736
730
737
return $ new_folder ->toArray ();
0 commit comments