本文整理汇总了Python中seaserv.seafile_api.set_group_repo函数的典型用法代码示例。如果您正苦于以下问题:Python set_group_repo函数的具体用法?Python set_group_repo怎么用?Python set_group_repo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了set_group_repo函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: share_dir_to_group
def share_dir_to_group(repo, path, owner, share_from, gid, permission, org_id=None):
# Share repo or subdir to group with permission(r, rw, admin).
extra_share_permission = ''
if permission == PERMISSION_ADMIN:
extra_share_permission = permission
permission = PERMISSION_READ_WRITE
if is_valid_org_id(org_id):
if path == '/':
seafile_api.add_org_group_repo(repo.repo_id, org_id, gid,
owner, permission)
else:
seafile_api.org_share_subdir_to_group(org_id, repo.repo_id,
path, owner,
gid, permission)
else:
if path == '/':
seafile_api.set_group_repo(repo.repo_id, gid, owner,
permission)
else:
seafile_api.share_subdir_to_group(repo.repo_id, path,
owner, gid,
permission)
# add share permission if between is admin and is extra permission.
if path == '/' and extra_share_permission == PERMISSION_ADMIN:
ExtraGroupsSharePermission.objects.create_share_permission(repo.repo_id, gid, extra_share_permission)
示例2: share_to_group
def share_to_group(request, repo, group, permission):
"""Share repo to group with given permission.
"""
repo_id = repo.id
group_id = group.id
group_name = group.group_name
from_user = request.user.username
if is_org_context(request):
org_id = request.user.org.org_id
group_repo_ids = seafile_api.get_org_group_repoids(org_id, group.id)
else:
group_repo_ids = seafile_api.get_group_repoids(group.id)
if repo.id in group_repo_ids:
msg = _(u'"%(repo)s" is already in group %(group)s. <a href="%(href)s">View</a>') % {
'repo': repo.name, 'group': group.group_name,
'href': reverse('group_info', args=[group.id])}
messages.error(request, msg)
return
try:
if is_org_context(request):
org_id = request.user.org.org_id
seafile_api.add_org_group_repo(repo_id, org_id, group_id,
from_user, permission)
else:
seafile_api.set_group_repo(repo_id, group_id, from_user,
permission)
except Exception, e:
logger.error(e)
msg = _(u'Failed to share %(repo)s to %(group)s, please try again later.') % \
{'repo': repo.name, 'group': group_name}
messages.error(request, msg)
示例3: test_reshare_to_user_group_after_transfer_repo
def test_reshare_to_user_group_after_transfer_repo(self):
tmp_user = '[email protected]'
User.objects.create_user(tmp_user)
# add admin user to group
ccnet_api.group_add_member(self.group_id, self.user_name, self.admin.username)
# share user's repo to tmp_user with 'rw' permission
seafile_api.share_repo(self.user_repo_id, self.user.username,
tmp_user, 'rw')
# share user's repo to group with 'r' permission
seafile_api.set_group_repo(self.user_repo_id, self.group_id,
self.user_name, 'r')
group_repos = seafile_api.get_repos_by_group(self.group_id)
assert group_repos[0].permission == 'r'
assert seafile_api.check_permission_by_path(self.user_repo_id,
'/', tmp_user) == 'rw'
self.login_as(self.user)
url = reverse("api2-repo-owner", args=[self.user_repo_id])
data = 'owner=%s' % self.admin.email
# transfer repo to admin
resp = self.client.put(url, data, 'application/x-www-form-urlencoded')
self.assertEqual(200, resp.status_code)
group_repos = seafile_api.get_repos_by_group(self.group_id)
assert group_repos[0].permission == 'r'
assert seafile_api.check_permission_by_path(self.user_repo_id,
'/', tmp_user) == 'rw'
示例4: _add_shared_items
def _add_shared_items(self):
# create repo for user
sub_repo_id = seafile_api.create_virtual_repo(self.repo.id,
self.folder,
self.repo.name, '',
self.user.username)
self.sub_repo_id = sub_repo_id
# create group for admin
admin_group_id = seaserv.ccnet_threaded_rpc.create_group('admin-group',
self.admin.email)
self.admin_group_id = admin_group_id
# A user shares a folder to admin with permission 'rw'.
seafile_api.share_repo(sub_repo_id, self.user.username,
self.admin.username, 'rw')
# A user shares a folder to admin group with permission 'rw'.
seafile_api.set_group_repo(sub_repo_id, admin_group_id,
self.user.username, 'rw')
# A user shares a folder to public with permission 'rw'.
seafile_api.add_inner_pub_repo(sub_repo_id, 'rw')
示例5: share_to_group
def share_to_group(request, repo, group, permission):
"""Share repo to group with given permission.
"""
repo_id = repo.id
group_id = group.id
from_user = request.user.username
if is_org_context(request):
org_id = request.user.org.org_id
group_repo_ids = seafile_api.get_org_group_repoids(org_id, group.id)
else:
group_repo_ids = seafile_api.get_group_repoids(group.id)
if repo.id in group_repo_ids:
return False
try:
if is_org_context(request):
org_id = request.user.org.org_id
seafile_api.add_org_group_repo(repo_id, org_id, group_id,
from_user, permission)
else:
seafile_api.set_group_repo(repo_id, group_id, from_user,
permission)
return True
except Exception, e:
logger.error(e)
return False
示例6: setUp
def setUp(self):
self.user_name = self.user.username
self.admin_name = self.admin.username
self.group_id = self.group.id
self.repo_id = self.repo.id
seafile_api.set_group_repo(self.repo_id, self.group_id,
self.admin.username, 'r')
示例7: share_repo_to_user_and_group
def share_repo_to_user_and_group(self):
# share repo to user
seafile_api.share_repo(self.repo_id,
self.user_name, self.admin_name, 'rw')
# share repo to group
seafile_api.set_group_repo(self.repo_id,
self.group_id, self.user_name, 'rw')
示例8: setUp
def setUp(self):
self.login_as(self.user)
self.group_id = self.group.id
self.group_name = self.group.group_name
self.repo_id = self.repo.id
self.url = reverse("api-v2.1-groups")
# share repo to group
seafile_api.set_group_repo(self.repo_id, self.group_id, self.user.email, "rw")
示例9: _add_shared_items
def _add_shared_items(self):
sub_repo_id = seafile_api.create_virtual_repo(self.repo.id,
self.folder,
self.repo.name, '',
self.user.username)
# A user shares a folder to admin with permission 'rw'.
seafile_api.share_repo(sub_repo_id, self.user.username,
self.admin.username, 'rw')
# A user shares a folder to group with permission 'rw'.
seafile_api.set_group_repo(sub_repo_id, self.group.id,
self.user.username, 'rw')
示例10: test_can_list_group_repo
def test_can_list_group_repo(self):
self._prepare_repo_and_group()
# A user shares a folder to admin group with permission 'rw'.
seafile_api.set_group_repo(self.sub_repo_id,
self.admin_group_id,
self.user.username,
'rw')
resp = self.client.get('/api2/beshared-repos/')
self.assertEqual(200, resp.status_code)
json_resp = json.loads(resp.content)
assert json_resp[0]['repo_id'] == self.sub_repo_id
assert json_resp[0]['share_type'] == 'group'
示例11: test_can_get
def test_can_get(self):
username = self.user.username
owner = get_repo_owner(self.fake_request, self.repo.id)
assert owner == username
assert get_repo_shared_users(self.repo.id, owner) == []
# user share a repo to admin
seafile_api.share_repo(self.repo.id, username,
self.admin.username, 'rw')
assert get_repo_shared_users(self.repo.id, owner) == [self.admin.username]
# user share a repo to group
seafile_api.set_group_repo(self.repo.id, self.group.id,
username, 'rw')
assert get_repo_shared_users(self.repo.id, owner) == [self.admin.username, self.user2.username]
示例12: group_wiki_create
def group_wiki_create(request, group):
if group.view_perm == "pub":
raise Http404
if request.method != 'POST':
raise Http404
content_type = 'application/json; charset=utf-8'
def json_error(err_msg, status=400):
result = {'error': err_msg}
return HttpResponse(json.dumps(result), status=status,
content_type=content_type)
form = WikiCreateForm(request.POST)
if not form.is_valid():
return json_error(str(form.errors.values()[0]))
# create group repo in user context
repo_name = form.cleaned_data['repo_name']
repo_desc = form.cleaned_data['repo_desc']
user = request.user.username
passwd = None
permission = "rw"
repo_id = create_repo(repo_name, repo_desc, user, passwd)
if not repo_id:
return json_error(_(u'Failed to create'), 500)
try:
seafile_api.set_group_repo(repo_id, group.id, user, permission)
except SearpcError as e:
remove_repo(repo_id)
return json_error(_(u'Failed to create: internal error.'), 500)
GroupWiki.objects.save_group_wiki(group_id=group.id, repo_id=repo_id)
# create home page
page_name = "home.md"
if not post_empty_file(repo_id, "/", page_name, user):
return json_error(_(u'Failed to create home page. Please retry later'), 500)
next = reverse('group_wiki', args=[group.id])
return HttpResponse(json.dumps({'href': next}), content_type=content_type)
示例13: test_not_reshare_to_group_after_transfer_repo
def test_not_reshare_to_group_after_transfer_repo(self):
# If new owner NOT in group repo shared to, NOT reshare to group
# share user's repo to group with 'r' permission
seafile_api.set_group_repo(self.user_repo_id, self.group_id,
self.user_name, 'r')
group_repos = seafile_api.get_repos_by_group(self.group_id)
assert group_repos[0].permission == 'r'
self.login_as(self.user)
url = reverse("api2-repo-owner", args=[self.user_repo_id])
data = 'owner=%s' % self.admin.email
# transfer repo to admin
resp = self.client.put(url, data, 'application/x-www-form-urlencoded')
self.assertEqual(200, resp.status_code)
group_repos = seafile_api.get_repos_by_group(self.group_id)
assert len(group_repos) == 0
示例14: test_can_notify_others_including_group
def test_can_notify_others_including_group(self):
self.logout()
self.login_as(self.tmp_user)
assert len(UserNotification.objects.all()) == 0
# share repo to tmp_user
username = self.user.username
seafile_api.share_repo(self.repo.id, username,
self.tmp_user.username, 'rw')
# share repo to group(owner, admin)
ccnet_api.group_add_member(self.group.id, username,
self.admin.username)
seafile_api.set_group_repo(self.repo.id, self.group.id,
username, 'rw')
# tmp_user comment a file
resp = self.client.post(self.endpoint, {
'comment': 'new comment'
})
self.assertEqual(201, resp.status_code)
assert len(UserNotification.objects.all()) == 2
示例15: HttpResponse
else:
return HttpResponse(json.dumps({"success": True}), content_type=content_type)
else:
try:
if encryption:
repo_id = seafile_api.create_enc_repo(
uuid, repo_name, repo_desc, username, magic_str, encrypted_file_key, enc_version=2
)
else:
repo_id = seafile_api.create_repo(repo_name, repo_desc, username, None)
except SearpcError, e:
logger.error(e)
return json_error(_(u"Failed to create"))
try:
seafile_api.set_group_repo(repo_id, group.id, username, permission)
except SearpcError, e:
logger.error(e)
return json_error(_(u"Failed to create: internal error."))
else:
return HttpResponse(json.dumps({"success": True}), content_type=content_type)
@login_required_ajax
def attention(request):
"""
Handle ajax request to query group members used in autocomplete.
"""
user = request.user.username
name_str = request.GET.get("name_startsWith")
gids = request.GET.get("gids", "")