From 27c5a978f91e7aa447a2acca040fd173baba53b9 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 8 Apr 2014 17:17:48 +0200 Subject: we no longer need to handle the Shared folder different from any other folder --- apps/files/js/filelist.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9c749bb8f34..343da217416 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -580,7 +580,7 @@ window.FileList = { var filename = input.val(); if (filename !== oldname) { // Files.isFileNameValid(filename) throws an exception itself - Files.isFileNameValid(filename, FileList.getCurrentDirectory()); + Files.isFileNameValid(filename); if (FileList.inList(filename)) { throw t('files', '{new_name} already exists', {new_name: filename}); } -- cgit v1.2.3 From 7ef8f6d352811e635bc6cf99b56d9482a54eb791 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Thu, 17 Apr 2014 15:54:45 +0200 Subject: always allow to rename the share mount point --- apps/files/js/filelist.js | 13 ++++++++++++- apps/files/lib/helper.php | 3 +++ apps/files_sharing/lib/cache.php | 4 ++++ lib/private/connector/sabre/objecttree.php | 8 +++++++- 4 files changed, 26 insertions(+), 2 deletions(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 343da217416..390bf4e0577 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -178,6 +178,13 @@ window.FileList = { if (type === 'dir') { mime = mime || 'httpd/unix-directory'; } + + // user should always be able to rename a share mount point + var allowRename = 0; + if (fileData.isShareMountPoint) { + allowRename = OC.PERMISSION_UPDATE; + } + //containing tr var tr = $('').attr({ "data-id" : fileData.id, @@ -187,7 +194,7 @@ window.FileList = { "data-mime": mime, "data-mtime": mtime, "data-etag": fileData.etag, - "data-permissions": fileData.permissions || this.getDirectoryPermissions() + "data-permissions": fileData.permissions | allowRename || this.getDirectoryPermissions() }); if (type === 'dir') { @@ -283,6 +290,10 @@ window.FileList = { mime = fileData.mimetype, permissions = parseInt(fileData.permissions, 10) || 0; + if (fileData.isShareMountPoint) { + permissions = permissions | OC.PERMISSION_UPDATE; + } + if (type === 'dir') { mime = mime || 'httpd/unix-directory'; } diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index 88a5ffcfb61..0ae87d12fbf 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -96,6 +96,9 @@ class Helper if (isset($i['displayname_owner'])) { $entry['shareOwner'] = $i['displayname_owner']; } + if (isset($i['is_share_mount_point'])) { + $entry['isShareMountPoint'] = $i['is_share_mount_point']; + } return $entry; } diff --git a/apps/files_sharing/lib/cache.php b/apps/files_sharing/lib/cache.php index 4a2f0ff08b2..67a0410ef76 100644 --- a/apps/files_sharing/lib/cache.php +++ b/apps/files_sharing/lib/cache.php @@ -91,6 +91,9 @@ class Shared_Cache extends Cache { $data = $cache->get($this->files[$file]); $data['displayname_owner'] = \OC_User::getDisplayName($this->storage->getSharedFrom()); $data['path'] = $path; + if ($file === '') { + $data['is_share_mount_point'] = true; + } return $data; } } else { @@ -123,6 +126,7 @@ class Shared_Cache extends Cache { } if (isset($mountPoint)) { $data['path'] = 'files/' . $mountPoint; + $data['is_share_mount_point'] = true; } return $data; } diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php index d2fa425b22c..2956f608380 100644 --- a/lib/private/connector/sabre/objecttree.php +++ b/lib/private/connector/sabre/objecttree.php @@ -87,9 +87,15 @@ class ObjectTree extends \Sabre_DAV_ObjectTree { list($sourceDir,) = \Sabre_DAV_URLUtil::splitPath($sourcePath); list($destinationDir,) = \Sabre_DAV_URLUtil::splitPath($destinationPath); + $isShareMountPoint = false; + list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath( '/' . \OCP\User::getUser() . '/files/' . $sourcePath); + if ($storage instanceof \OC\Files\Storage\Shared && !$internalPath) { + $isShareMountPoint = true; + } + // check update privileges $fs = $this->getFileView(); - if (!$fs->isUpdatable($sourcePath)) { + if (!$fs->isUpdatable($sourcePath) && !$isShareMountPoint) { throw new \Sabre_DAV_Exception_Forbidden(); } if ($sourceDir !== $destinationDir) { -- cgit v1.2.3 From c2f7848aeb194aa6bf7c3da330e2750648880c48 Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Mon, 21 Apr 2014 09:35:15 +0100 Subject: Adjust renaming of directories, fixes #8280 Directories will not be considered to have an extension, even if a dot is found. Stop Scrutinizer being annoyed But the spaced version looked good! Stop jsHint being annoyed These code quality tools are really pestering --- apps/files/js/filelist.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'apps/files/js/filelist.js') diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9c749bb8f34..ab2601c5fb2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -572,7 +572,8 @@ window.FileList = { input.focus(); //preselect input var len = input.val().lastIndexOf('.'); - if (len === -1) { + if ( len === -1 || + tr.data('type') === 'dir' ) { len = input.val().length; } input.selectRange(0, len); -- cgit v1.2.3