mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 02:48:51 +00:00
update repo share
1. reshare repo after user/admin transfer repo 2. show org repo share out list at share popup in org mode
This commit is contained in:
@@ -22,7 +22,7 @@ from django.utils.translation import ugettext as _
|
||||
|
||||
import seaserv
|
||||
from seaserv import ccnet_threaded_rpc, seafserv_threaded_rpc, \
|
||||
seafile_api, get_group, get_group_members
|
||||
seafile_api, get_group, get_group_members, ccnet_api
|
||||
from pysearpc import SearpcError
|
||||
|
||||
from seahub.base.accounts import User
|
||||
@@ -1611,8 +1611,45 @@ def sys_repo_transfer(request):
|
||||
except SearpcError: # XXX: ignore rpc not found error
|
||||
pass
|
||||
|
||||
repo_owner = seafile_api.get_repo_owner(repo_id)
|
||||
shared_users = seafile_api.list_repo_shared_to(
|
||||
repo_owner, repo_id)
|
||||
shared_groups = seafile_api.list_repo_shared_group_by_user(
|
||||
repo_owner, repo_id)
|
||||
pub_repos = seaserv.seafserv_threaded_rpc.list_inner_pub_repos_by_owner(
|
||||
repo_owner)
|
||||
|
||||
# transfer repo
|
||||
seafile_api.set_repo_owner(repo_id, new_owner)
|
||||
|
||||
# reshare repo
|
||||
for shared_user in shared_users:
|
||||
shared_username = shared_user.user
|
||||
|
||||
if new_owner == shared_username:
|
||||
continue
|
||||
|
||||
seafile_api.share_repo(repo_id, new_owner,
|
||||
shared_username, shared_user.perm)
|
||||
|
||||
for shared_group in shared_groups:
|
||||
shared_group_id = shared_group.group_id
|
||||
|
||||
if not ccnet_api.is_group_user(shared_group_id, new_owner):
|
||||
continue
|
||||
|
||||
seafile_api.set_group_repo(repo_id, shared_group_id,
|
||||
new_owner, shared_group.perm)
|
||||
|
||||
for pub_repo in pub_repos:
|
||||
if repo_id != pub_repo.id:
|
||||
continue
|
||||
|
||||
seaserv.seafserv_threaded_rpc.set_inner_pub_repo(
|
||||
repo_id, pub_repo.permission)
|
||||
|
||||
break
|
||||
|
||||
messages.success(request, _(u'Successfully transfered.'))
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
|
Reference in New Issue
Block a user