From 2d80c148ba8c1e83508a4c9e7318fa388740c9ff Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Mon, 4 Jun 2012 10:42:09 +0200 Subject: [PATCH] Don't allow user to delete, rename and re-share the "Shared" directory --- apps/files/js/fileactions.js | 6 ++++-- apps/files/js/files.js | 2 +- lib/files.php | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 19978b61a7d..0c672cd6708 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -51,7 +51,7 @@ FileActions={ var actions=this.get(mime,type); return actions[name]; }, - display:function(parent){ + display:function(parent, filename, type){ FileActions.currentFile=parent; $('#fileList span.fileactions, #fileList td.date a.action').remove(); var actions=FileActions.get(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); @@ -62,6 +62,8 @@ FileActions={ parent.children('a.name').append(''); var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType()); for(name in actions){ + // no rename and share action for the 'Shared' dir + if((name=='Rename' || name =='Share') && type=='dir' && filename=='Shared') { continue; } if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){ var img=FileActions.icons[name]; if(img.call){ @@ -84,7 +86,7 @@ FileActions={ parent.find('a.name>span.fileactions').append(element); } } - if(actions['Delete']){ + if(actions['Delete'] && (type!='dir' || filename != 'Shared')){ // no delete action for the 'Shared' dir var img=FileActions.icons['Delete']; if(img.call){ img=img(file); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 7d9c53eaa8e..7cd0f388a3c 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -56,7 +56,7 @@ $(document).ready(function() { // Sets the file-action buttons behaviour : $('tr').live('mouseenter',function(event) { - FileActions.display($(this).children('td.filename')); + FileActions.display($(this).children('td.filename'), $(this).attr('data-file'), $(this).attr('data-type')); }); $('tr').live('mouseleave',function(event) { FileActions.hide(); diff --git a/lib/files.php b/lib/files.php index 79d214665de..1e88a7b608d 100644 --- a/lib/files.php +++ b/lib/files.php @@ -224,7 +224,7 @@ class OC_Files { * @param file $name */ public static function delete($dir,$file){ - if(OC_User::isLoggedIn()){ + if(OC_User::isLoggedIn() && ($dir!= '' || $file != 'Shared')) { $file=$dir.'/'.$file; return OC_Filesystem::unlink($file); } -- 2.39.5