1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 19:08:21 +00:00

rm shared in repo when delete an user

This commit is contained in:
lian
2017-01-09 18:08:39 +08:00
parent fc680148e5
commit 720bf570cb
2 changed files with 26 additions and 12 deletions

View File

@@ -214,23 +214,42 @@ class User(object):
else: else:
source = "LDAP" source = "LDAP"
username = self.username
orgs = ccnet_threaded_rpc.get_orgs_by_user(username)
# remove owned repos
owned_repos = [] owned_repos = []
orgs = ccnet_threaded_rpc.get_orgs_by_user(self.username)
if orgs: if orgs:
for org in orgs: for org in orgs:
owned_repos += seafile_api.get_org_owned_repo_list(org.org_id, owned_repos += seafile_api.get_org_owned_repo_list(org.org_id,
self.username) username)
else: else:
owned_repos += seafile_api.get_owned_repo_list(self.username) owned_repos += seafile_api.get_owned_repo_list(username)
for r in owned_repos: for r in owned_repos:
seafile_api.remove_repo(r.id) seafile_api.remove_repo(r.id)
clear_token(self.username) # remove shared in repos
shared_in_repos = []
if orgs:
for org in orgs:
org_id = org.org_id
shared_in_repos = seafile_api.get_org_share_in_repo_list(org_id,
username, -1, -1)
for r in shared_in_repos:
seafile_api.org_remove_share(org_id,
r.repo_id, r.user, username)
else:
shared_in_repos = seafile_api.get_share_in_repo_list(username, -1, -1)
for r in shared_in_repos:
seafile_api.remove_share(r.repo_id, r.user, username)
clear_token(username)
# remove current user from joined groups # remove current user from joined groups
ccnet_api.remove_group_user(self.username) ccnet_api.remove_group_user(username)
ccnet_api.remove_emailuser(source, self.username) ccnet_api.remove_emailuser(source, username)
Profile.objects.delete_profile_by_user(self.username) Profile.objects.delete_profile_by_user(username)
def get_and_delete_messages(self): def get_and_delete_messages(self):
messages = [] messages = []

View File

@@ -711,11 +711,6 @@ def user_remove(request, email):
messages.error(request, _(u'Failed to delete: the user is an organization creator')) messages.error(request, _(u'Failed to delete: the user is an organization creator'))
return HttpResponseRedirect(next) return HttpResponseRedirect(next)
org_id = org[0].org_id
org_user_repos = seafile_api.get_org_owned_repo_list(org_id, user.email)
for repo in org_user_repos:
seafile_api.remove_repo(repo.id)
user.delete() user.delete()
messages.success(request, _(u'Successfully deleted %s') % user.username) messages.success(request, _(u'Successfully deleted %s') % user.username)
except User.DoesNotExist: except User.DoesNotExist: