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:
@@ -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 = []
|
||||||
|
@@ -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:
|
||||||
|
Reference in New Issue
Block a user