Skip to content

Commit

Permalink
merge clean trash
Browse files Browse the repository at this point in the history
  • Loading branch information
孙永强 committed Jul 2, 2024
1 parent 6a0df7b commit 554ddbd
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 65 deletions.
10 changes: 1 addition & 9 deletions frontend/src/components/dialog/clean-trash.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import CreatableSelect from 'react-select/creatable';
import { gettext } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { repotrashAPI } from '../../utils/repo-trash-api';
import { Utils } from '../../utils/utils';
import toaster from '../toast';

Expand Down Expand Up @@ -52,14 +51,7 @@ class CleanTrash extends React.Component {
submitBtnDisabled: false
});
});
repotrashAPI.deleteRepoTrash2(repoID, inputValue.value).then((res) => {
}).catch((error) => {
let errorMsg = Utils.getErrorMsg(error);
this.setState({
formErrorMsg: errorMsg,
submitBtnDisabled: false
});
});

if (this.props.trashType === 0){
this.props.refreshTrash2();
}
Expand Down
61 changes: 5 additions & 56 deletions seahub/api2/endpoints/repo_trash.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,11 +237,16 @@ def delete(self, request, repo_id, format=None):
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

try:
from seafevents import seafevents_api
from seahub.utils import SeafEventsSession
seafile_api.clean_up_repo_history(repo_id, keep_days)
org_id = None if not request.user.org else request.user.org.org_id
clean_up_repo_trash.send(sender=None, org_id=org_id,
operator=username, repo_id=repo_id, repo_name=repo.name,
repo_owner=repo_owner, days=keep_days)
session = SeafEventsSession()
seafevents_api.clean_up_repo_trash(session, repo_id, keep_days)
session.close()
except Exception as e:
logger.error(e)
error_msg = 'Internal Server Error'
Expand Down Expand Up @@ -407,59 +412,3 @@ def post(self, request, repo_id, format=None):
}

return Response(result)

def delete(self, request, repo_id, format=None):
""" Clean library's trash.
Permission checking:
1. repo owner can perform this action.
2. is group admin.
"""

# argument check
try:
keep_days = int(request.data.get('keep_days', 0))
except ValueError:
error_msg = 'keep_days invalid.'
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)

if keep_days < 0:
error_msg = 'keep_days invalid.'
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)

# resource check
repo = seafile_api.get_repo(repo_id)
if not repo:
error_msg = 'Library %s not found.' % repo_id
return api_error(status.HTTP_404_NOT_FOUND, error_msg)

# permission check
username = request.user.username
repo_owner = get_repo_owner(request, repo_id)
if not config.ENABLE_USER_CLEAN_TRASH:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

if '@seafile_group' in repo_owner:
group_id = get_group_id_by_repo_owner(repo_owner)
if not is_group_admin(group_id, username):
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
else:
if username != repo_owner:
error_msg = 'Permission denied.'
return api_error(status.HTTP_403_FORBIDDEN, error_msg)

try:
from seahub.utils import SeafEventsSession, seafevents_api
session = SeafEventsSession()
seafevents_api.clean_up_repo_trash(session, repo_id, keep_days)
session.close()
except Exception as e:
logger.error(e)
error_msg = 'Internal Server Error'
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
except ImportError:
pass

return Response({'success': True})

0 comments on commit 554ddbd

Please sign in to comment.