1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-12 21:30:39 +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

@@ -3,19 +3,19 @@
{% block nav_group_class %}class="cur"{% endblock %}
{% block left_panel %}
<ul>
<li>管理员</li>
<h3>管理员</h3>
{% for member in members %}
{% if member.props.is_staff == 1 %}
<p><a href="{{ SITE_ROOT }}useradmin/info/{{ member.props.user_name }}/">{{ member.props.user_name }}</a></p>
<p>{{ member.props.user_name }}</p>
{% endif %}
{% endfor %}
<li>成员</li>
<h3>成员</h3>
{% for member in members %}
{% if member.props.is_staff == 0 %}
<p><a href="{{ SITE_ROOT }}useradmin/info/{{ member.props.user_name }}/">{{ member.props.user_name }}</a></p>
<p>{{ member.props.user_name }}</p>
{% endif %}
{% endfor %}
<ul>
<li>操作</li>
{% if is_creator %}
<p><a id="add-member" href="#">添加成员</a></p>

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,7 +144,7 @@ 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)
@@ -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'共享失败:内部错误')

View File

@@ -5,7 +5,7 @@
<h3>已用空间</h3>
<p>{{ quota_usage|filesizeformat }} / 2 GB</p>
<h3>创建的小组</h3>
<h3>管理的小组</h3>
{% if groups %}
{% for group in groups %}
{% if group.my_create %}

View File

@@ -31,56 +31,6 @@ from utils import go_permission_error, go_error, list_to_string, get_httpserver_
import stat
import settings
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'共享失败:内部错误')
@login_required
def root(request):
return HttpResponseRedirect(reverse(myhome))
@@ -131,11 +81,19 @@ def check_shared_repo(request, repo_id):
return False
def validate_emailuser(email):
# check whether emailuser is in the database
if ccnet_rpc.get_emailuser(email) != None:
return True
def validate_emailuser(emailuser):
"""
check whether emailuser is in the database
"""
try:
user = ccnet_rpc.get_emailuser(emailuser)
except:
user = None
if user:
return True
else:
return False
def repo(request, repo_id):
@@ -428,6 +386,7 @@ def repo_add_share(request):
for group in groups:
if group.props.group_name == group_name and \
group_creator.find(group.props.creator_name) >= 0:
from seahub.group.views import group_share_repo
group_share_repo(request, repo_id, int(group.props.id), from_email)
find = True
info_emails.append(group_name)
@@ -503,12 +462,8 @@ def repo_download(request):
@login_required
def repo_remove_share(request):
repo_id = request.GET.get('repo_id', '')
if not validate_owner(request, repo_id):
return go_permission_error(request, u'取消共享失败:不是目录拥有者')
from_email = request.user.username
group_id = request.GET.get('gid')
from_email = request.user.username
# if request params don't have 'gid', then remove repos that share to
# to other person; else, remove repos that share to groups
@@ -519,8 +474,9 @@ def repo_remove_share(request):
try:
group_id_int = int(group_id)
except:
return HttpResponseRedirect(request.META['HTTP_REFERER'])
return go_error(request, u'group id 不是有效参数')
from seahub.group.views import group_unshare_repo
group_unshare_repo(request, repo_id, group_id_int, from_email)
return HttpResponseRedirect(request.META['HTTP_REFERER'])
@@ -702,3 +658,4 @@ def back_local(request):
redirect_url = '%s/home/' % ccnet_applt_root
return HttpResponseRedirect(redirect_url)