mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-03 07:55:36 +00:00
update groups api
This commit is contained in:
@@ -225,20 +225,23 @@ class Groups(APIView):
|
|||||||
error_msg = _('Email %s is not valid.') % email
|
error_msg = _('Email %s is not valid.') % email
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
if email != username:
|
if email == group.creator_name:
|
||||||
try:
|
error_msg = _('%s is already group owner') % email
|
||||||
if not seaserv.is_group_user(group_id, email):
|
|
||||||
seaserv.ccnet_threaded_rpc.group_add_member(group_id, username, email)
|
|
||||||
|
|
||||||
seaserv.ccnet_threaded_rpc.set_group_creator(group_id, email)
|
|
||||||
seaserv.ccnet_threaded_rpc.group_set_admin(group_id, email)
|
|
||||||
except SearpcError as e:
|
|
||||||
logger.error(e)
|
|
||||||
error_msg = _(u'Internal Server Error')
|
|
||||||
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
|
||||||
else:
|
|
||||||
error_msg = _('You can not transfer a group to yourself')
|
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
|
try:
|
||||||
|
if not seaserv.is_group_user(group_id, email):
|
||||||
|
seaserv.ccnet_threaded_rpc.group_add_member(group_id, username, email)
|
||||||
|
|
||||||
|
if not seaserv.check_group_staff(group_id, email):
|
||||||
|
seaserv.ccnet_threaded_rpc.group_set_admin(group_id, email)
|
||||||
|
|
||||||
|
seaserv.ccnet_threaded_rpc.set_group_creator(group_id, email)
|
||||||
|
except SearpcError as e:
|
||||||
|
logger.error(e)
|
||||||
|
error_msg = _(u'Internal Server Error')
|
||||||
|
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
error_msg = _(u'Operation can only be rename or transfer.')
|
error_msg = _(u'Operation can only be rename or transfer.')
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
@@ -126,7 +126,7 @@ class GroupsTest(BaseTestCase):
|
|||||||
json_resp = json.loads(resp.content)
|
json_resp = json.loads(resp.content)
|
||||||
assert json_resp['creator'] == new_creator
|
assert json_resp['creator'] == new_creator
|
||||||
|
|
||||||
def test_can_not_transfer_group_to_myself(self):
|
def test_can_not_transfer_group_to_group_owner(self):
|
||||||
new_creator = self.user.email
|
new_creator = self.user.email
|
||||||
url = reverse('api-v2.1-group', args=[self.group_id])
|
url = reverse('api-v2.1-group', args=[self.group_id])
|
||||||
data = 'operation=transfer&email=%s' % new_creator
|
data = 'operation=transfer&email=%s' % new_creator
|
||||||
|
Reference in New Issue
Block a user