public function save() { if (Flash::noErrors()) { $this->sFilePath = self::normalize($_POST['file_path']); if ($_POST['file_path_old'] == self::NEW_DIR_IDENTIFIER) { mkdir("{$this->sWebdavBaseDirPath}/{$this->sFilePath}"); } else { if ($this->sFilePath !== $_POST['file_path_old']) { rename($this->sWebdavBaseDirPath . "/" . $_POST['file_path_old'], "{$this->sWebdavBaseDirPath}/{$this->sFilePath}"); } } // delete all old groups foreach (DirectoryPermissionPeer::getPermissionsByFileName($this->sFilePath) as $oPermission) { $oPermission->delete(); } if (isset($_POST['group_ids'])) { foreach ($_POST['group_ids'] as $sGroupId) { $oDirectoryPermisson = new DirectoryPermission(); $oDirectoryPermisson->setFileName($this->sFilePath); $oDirectoryPermisson->setGroupId($sGroupId); $oDirectoryPermisson->setCreatedBy(Session::getSession()->getUserId()); $oDirectoryPermisson->setCreatedAt(date('c')); $oDirectoryPermisson->save(); } } LinkUtil::redirect($this->link($this->sFilePath)); } }