diff options
author | Morris Jobke <morris.jobke@gmail.com> | 2013-05-06 20:45:04 +0200 |
---|---|---|
committer | Morris Jobke <morris.jobke@gmail.com> | 2013-05-12 11:47:22 +0200 |
commit | 1020d5c16c452145b25725b71bc3269dceddbe6e (patch) | |
tree | 66719f3e57de74dfb4d5819a1bac6ec7a0f495a2 /apps/files/lib | |
parent | 33b31931bddb6932c35f2ab9ec6bce9ea723509a (diff) | |
download | nextcloud-server-1020d5c16c452145b25725b71bc3269dceddbe6e.tar.gz nextcloud-server-1020d5c16c452145b25725b71bc3269dceddbe6e.zip |
[files] refactoring
Diffstat (limited to 'apps/files/lib')
-rw-r--r-- | apps/files/lib/files.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/apps/files/lib/files.php b/apps/files/lib/files.php new file mode 100644 index 00000000000..3cbeb384794 --- /dev/null +++ b/apps/files/lib/files.php @@ -0,0 +1,80 @@ +<?php + +/** + * ownCloud - Core + * + * @author Morris Jobke + * @copyright 2013 Morris Jobke morris.jobke@gmail.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCA\Files; + +class Files { + private $l10n; + + public function __construct() { + $this->l10n = \OC_L10n::get('files'); + } + + /** + * rename a file + * + * @param string $dir + * @param string $oldname + * @param string $newname + * @return array + */ + public function rename($dir, $oldname, $newname) { + $result = array( + 'success' => false, + 'data' => NULL + ); + + // rename to "Shared" in root directory denied + if( $dir === '/' and $newname === 'Shared' ) { + $result['data'] = array( + 'message' => $this->t("Invalid folder name. Usage of 'Shared' is reserved by Owncloud") + ); + } elseif( + // rename to "." is denied + $newname !== '.' and + // rename to "Shared" inside the root directory is denied + !($dir === '/' and $file === 'Shared') and + // THEN try to rename + \OC\Files\Filesystem::rename( + \OC\Files\Filesystem::normalizePath($dir . '/' . $oldname), + \OC\Files\Filesystem::normalizePath($dir . '/' . $newname) + ) + ) { + // successful rename + $result['success'] = true; + $result['data'] = array( + 'dir' => $dir, + 'file' => $oldname, + 'newname' => $newname + ); + } else { + // rename failed + $result['data'] = array( + 'message' => $this->t('Unable to rename file') + ); + } + return $result; + } + +}
\ No newline at end of file |