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:
@@ -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>
|
||||||
|
@@ -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'共享失败:内部错误')
|
||||||
|
@@ -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 %}
|
||||||
|
77
views.py
77
views.py
@@ -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,11 +81,19 @@ 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
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
user = ccnet_rpc.get_emailuser(emailuser)
|
||||||
|
except:
|
||||||
|
user = None
|
||||||
|
|
||||||
|
if user:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def repo(request, repo_id):
|
def repo(request, repo_id):
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user