diff --git a/seahub/views/ajax.py b/seahub/views/ajax.py index 2de3f74c67..d82794f31d 100644 --- a/seahub/views/ajax.py +++ b/seahub/views/ajax.py @@ -733,14 +733,13 @@ def delete_dirents(request, repo_id): # permission checking username = request.user.username - if check_folder_permission(request, repo.id, parent_dir) != 'rw': - err_msg = _(u'Permission denied.') - return HttpResponse(json.dumps({'error': err_msg}), - status=403, content_type=content_type) - deleted = [] undeleted = [] for dirent_name in dirents_names: + full_path = os.path.join(parent_dir, dirent_name) + if check_folder_permission(request, repo.id, full_path) != 'rw': + undeleted.append(dirent_name) + continue try: seafile_api.del_file(repo_id, parent_dir, dirent_name, username) deleted.append(dirent_name) diff --git a/static/scripts/app/views/dir.js b/static/scripts/app/views/dir.js index 28cd77bf3a..e9e968f81a 100644 --- a/static/scripts/app/views/dir.js +++ b/static/scripts/app/views/dir.js @@ -550,7 +550,7 @@ define([ _this.$('#multi-dirents-op').hide(); } else { $(selected_dirents).each(function() { - if (this.get('obj_name') in data['deleted']) { + if (data['deleted'].indexOf(this.get('obj_name')) != -1) { dirents.remove(this); } }); @@ -567,11 +567,11 @@ define([ } if (not_del_len > 0) { if (not_del_len == 1) { - msg_f = gettext("Internal error. Failed to delete %(name)s."); + msg_f = gettext("Failed to delete %(name)s."); } else if (not_del_len == 2) { - msg_f = gettext("Internal error. Failed to delete %(name)s and 1 other item."); + msg_f = gettext("Failed to delete %(name)s and 1 other item."); } else { - msg_f = gettext("Internal error. Failed to delete %(name)s and %(amount)s other items."); + msg_f = gettext("Failed to delete %(name)s and %(amount)s other items."); } msg_f = msg_f.replace('%(name)s', Common.HTMLescape(data['undeleted'][0])).replace('%(amount)s', not_del_len - 1); Common.feedback(msg_f, 'error');