1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-13 05:39:59 +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 nav_group_class %}class="cur"{% endblock %}
{% block left_panel %} {% block left_panel %}
<ul> <h3>管理员</h3>
<li>管理员</li>
{% for member in members %} {% for member in members %}
{% if member.props.is_staff == 1 %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
<li>成员</li> <h3>成员</h3>
{% for member in members %} {% for member in members %}
{% if member.props.is_staff == 0 %} {% 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 %} {% endif %}
{% endfor %} {% endfor %}
<ul>
<li>操作</li> <li>操作</li>
{% if is_creator %} {% if is_creator %}
<p><a id="add-member" href="#">添加成员</a></p> <p><a id="add-member" href="#">添加成员</a></p>

View File

@@ -45,7 +45,7 @@ def group_remove(request):
try: try:
group_id_int = int(group_id) group_id_int = int(group_id)
except ValueError: except ValueError:
group_id_int = -1 return HttpResponseRedirect(reverse('group_list', args=[]))
try: try:
ccnet_rpc.remove_group(group_id_int, request.user.username) ccnet_rpc.remove_group(group_id_int, request.user.username)
@@ -128,7 +128,7 @@ def group_remove_member(request):
try: try:
group_id_int = int(group_id) group_id_int = int(group_id)
except ValueError: except ValueError:
raise Http404 return go_error(request, u'group id 不是有效参数')
try: try:
ccnet_rpc.group_remove_member(group_id_int, request.user.username, ccnet_rpc.group_remove_member(group_id_int, request.user.username,
member_name) member_name)
@@ -144,7 +144,7 @@ def group_quit(request):
try: try:
group_id_int = int(group_id) group_id_int = int(group_id)
except ValueError: except ValueError:
raise Http404 return go_error(request, u'group id 不是有效参数')
try: try:
ccnet_rpc.quit_group(group_id_int, request.user.username) 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 go_error(request, e.msg)
return HttpResponseRedirect(reverse('group_list', args=[])) 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> <h3>已用空间</h3>
<p>{{ quota_usage|filesizeformat }} / 2 GB</p> <p>{{ quota_usage|filesizeformat }} / 2 GB</p>
<h3>创建的小组</h3> <h3>管理的小组</h3>
{% if groups %} {% if groups %}
{% for group in groups %} {% for group in groups %}
{% if group.my_create %} {% 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 stat
import settings 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 @login_required
def root(request): def root(request):
return HttpResponseRedirect(reverse(myhome)) return HttpResponseRedirect(reverse(myhome))
@@ -131,12 +81,20 @@ def check_shared_repo(request, repo_id):
return False return False
def validate_emailuser(email): def validate_emailuser(emailuser):
# check whether emailuser is in the database """
if ccnet_rpc.get_emailuser(email) != None: check whether emailuser is in the database
return True
return False """
try:
user = ccnet_rpc.get_emailuser(emailuser)
except:
user = None
if user:
return True
else:
return False
def repo(request, repo_id): def repo(request, repo_id):
# get repo web access property, if no repo access property in db, then # get repo web access property, if no repo access property in db, then
@@ -428,6 +386,7 @@ def repo_add_share(request):
for group in groups: for group in groups:
if group.props.group_name == group_name and \ if group.props.group_name == group_name and \
group_creator.find(group.props.creator_name) >= 0: 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) group_share_repo(request, repo_id, int(group.props.id), from_email)
find = True find = True
info_emails.append(group_name) info_emails.append(group_name)
@@ -503,12 +462,8 @@ def repo_download(request):
@login_required @login_required
def repo_remove_share(request): def repo_remove_share(request):
repo_id = request.GET.get('repo_id', '') 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') group_id = request.GET.get('gid')
from_email = request.user.username
# if request params don't have 'gid', then remove repos that share to # if request params don't have 'gid', then remove repos that share to
# to other person; else, remove repos that share to groups # to other person; else, remove repos that share to groups
@@ -519,8 +474,9 @@ def repo_remove_share(request):
try: try:
group_id_int = int(group_id) group_id_int = int(group_id)
except: 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) group_unshare_repo(request, repo_id, group_id_int, from_email)
return HttpResponseRedirect(request.META['HTTP_REFERER']) return HttpResponseRedirect(request.META['HTTP_REFERER'])
@@ -702,3 +658,4 @@ def back_local(request):
redirect_url = '%s/home/' % ccnet_applt_root redirect_url = '%s/home/' % ccnet_applt_root
return HttpResponseRedirect(redirect_url) return HttpResponseRedirect(redirect_url)