1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-16 15:19:06 +00:00

Modify page and clean code

This commit is contained in:
xiez
2012-05-15 14:29:37 +08:00
parent 1de93aa036
commit 479a7605de
4 changed files with 78 additions and 72 deletions

View File

@@ -45,7 +45,7 @@ def group_remove(request):
try:
group_id_int = int(group_id)
except ValueError:
group_id_int = -1
return HttpResponseRedirect(reverse('group_list', args=[]))
try:
ccnet_rpc.remove_group(group_id_int, request.user.username)
@@ -128,7 +128,7 @@ def group_remove_member(request):
try:
group_id_int = int(group_id)
except ValueError:
raise Http404
return go_error(request, u'group id 不是有效参数')
try:
ccnet_rpc.group_remove_member(group_id_int, request.user.username,
member_name)
@@ -144,8 +144,8 @@ def group_quit(request):
try:
group_id_int = int(group_id)
except ValueError:
raise Http404
return go_error(request, u'group id 不是有效参数')
try:
ccnet_rpc.quit_group(group_id_int, request.user.username)
seafserv_threaded_rpc.remove_repo_group(group_id_int, request.user.username)
@@ -153,3 +153,52 @@ def group_quit(request):
return go_error(request, e.msg)
return HttpResponseRedirect(reverse('group_list', args=[]))
def group_share_repo(request, repo_id, group_id, from_email):
"""
share a repo to a group
"""
# check whether group exists
group = ccnet_rpc.get_group(group_id)
if not group:
return go_error(request, u'共享失败:小组不存在')
# check whether user belong to the group
joined = False
groups = ccnet_rpc.get_groups(request.user.username)
for group in groups:
if group.props.id == group_id:
joined = True
if not joined:
return go_error(request, u'共享失败:未加入该小组')
if seafserv_threaded_rpc.group_share_repo(repo_id, group_id, from_email) != 0:
return go_error(request, u'共享失败:内部错误')
def group_unshare_repo(request, repo_id, group_id, from_email):
"""
unshare a repo to a group
"""
# check whether group exists
group = ccnet_rpc.get_group(group_id)
if not group:
return go_error(request, u'共享失败:小组不存在')
# check whether user belong to the group
joined = False
groups = ccnet_rpc.get_groups(from_email)
for group in groups:
if group.props.id == group_id:
joined = True
if not joined:
return go_error(request, u'共享失败:未加入该小组')
# check whether user is group staff or the one share the repo
if not ccnet_rpc.check_group_staff(group_id, from_email) and \
seafserv_threaded_rpc.get_group_repo_share_from(repo_id) != from_email:
return go_permission_error(request, u'取消共享失败:只有小组管理员或共享目录发布者有权取消共享')
if seafserv_threaded_rpc.group_unshare_repo(repo_id, group_id, from_email) != 0:
return go_error(request, u'共享失败:内部错误')