mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-25 14:50:29 +00:00
Update group_owned_libraries.py
This commit is contained in:
@@ -1417,6 +1417,7 @@ class GroupOwnedLibraryTransferView(APIView):
|
|||||||
permission_classes = (IsAuthenticated, IsProVersion)
|
permission_classes = (IsAuthenticated, IsProVersion)
|
||||||
throttle_classes = (UserRateThrottle,)
|
throttle_classes = (UserRateThrottle,)
|
||||||
|
|
||||||
|
@api_check_group
|
||||||
@add_org_context
|
@add_org_context
|
||||||
def put(self, request, group_id, repo_id, org_id):
|
def put(self, request, group_id, repo_id, org_id):
|
||||||
""" Transfer a library.
|
""" Transfer a library.
|
||||||
@@ -1434,23 +1435,28 @@ class GroupOwnedLibraryTransferView(APIView):
|
|||||||
error_msg = 'Email invalid.'
|
error_msg = 'Email invalid.'
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
|
new_group_id = int(new_owner.split('@')[0])
|
||||||
|
if new_group_id == int(group_id):
|
||||||
|
error_msg = 'Cannot transfer to its owner'
|
||||||
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group = ccnet_api.get_group(int(group_id))
|
new_group = ccnet_api.get_group(new_group_id)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
error_msg = 'Internal Server Error'
|
error_msg = 'Internal Server Error'
|
||||||
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
||||||
|
|
||||||
if not group:
|
if not new_group:
|
||||||
error_msg = 'Group %d not found.' % group_id
|
error_msg = 'Group %d not found.' % group_id
|
||||||
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
|
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
|
||||||
|
|
||||||
if group.creator_name != 'system admin':
|
if new_group.creator_name != 'system admin':
|
||||||
error_msg = 'Group %d invalid' % group_id
|
error_msg = 'Group %d invalid' % group_id
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
username = request.user.username
|
username = request.user.username
|
||||||
if not is_group_member(int(new_owner.split('@')[0]), username):
|
if not is_group_member(new_group_id, username):
|
||||||
error_msg = 'Permission denied.'
|
error_msg = 'Permission denied.'
|
||||||
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
|
return api_error(status.HTTP_403_FORBIDDEN, error_msg)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user