Example #1
0
 function _deleteTree($folder)
 {
     // first delete all childs (recursive)
     $rs = $this->getChildrensById($folder->id);
     if ($rs !== FALSE) {
         $fc = new FoldersCollection($this, $rs);
         while ($child = $fc->getNext()) {
             $this->_deleteTree($child);
         }
     }
     $this->withOtherFields = FALSE;
     $result = parent::_deleteTree($folder);
     $this->withOtherFields = TRUE;
     // delete translations
     if ($result) {
         $query = "DELETE FROM " . $GLOBALS['prefix_fw'] . '_org_chart' . " WHERE id_dir = '" . (int) $folder->id . "'";
         $this->_executeQuery($query);
     }
     $aclManager =& Docebo::user()->getACLManager();
     $idST = $this->getGroupDescendantsST($folder->id);
     // detach this descendant group from parent descendant group
     $aclManager->removeFromGroup($this->getGroupDescendantsST($folder->idParent), $idST);
     // delete descendant group
     $aclManager->deleteGroup($idST);
     // delete OU group
     $aclManager->deleteGroup($this->getGroupST($folder->id));
     return $result;
 }