mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 02:42:47 +00:00
Change error function names
This commit is contained in:
@@ -12,7 +12,7 @@ from avatar.settings import AVATAR_MAX_AVATARS_PER_USER, AVATAR_DEFAULT_SIZE
|
|||||||
from avatar.signals import avatar_updated
|
from avatar.signals import avatar_updated
|
||||||
from avatar.util import get_primary_avatar, get_default_avatar_url, \
|
from avatar.util import get_primary_avatar, get_default_avatar_url, \
|
||||||
invalidate_cache
|
invalidate_cache
|
||||||
from seahub.utils import go_error, go_permission_error
|
from seahub.utils import render_error, render_permission_error
|
||||||
|
|
||||||
from auth.decorators import login_required
|
from auth.decorators import login_required
|
||||||
from seaserv import ccnet_threaded_rpc, check_group_staff
|
from seaserv import ccnet_threaded_rpc, check_group_staff
|
||||||
@@ -94,10 +94,10 @@ def group_add(request):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return render_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
if not check_group_staff(group_id_int, request.user):
|
if not check_group_staff(group_id_int, request.user):
|
||||||
return go_permission_error(request, u'只有小组管理员有权设置小组图标')
|
return render_permission_error(request, u'只有小组管理员有权设置小组图标')
|
||||||
|
|
||||||
group = ccnet_threaded_rpc.get_group(group_id_int)
|
group = ccnet_threaded_rpc.get_group(group_id_int)
|
||||||
if not group:
|
if not group:
|
||||||
|
@@ -11,7 +11,7 @@ from django.forms.models import modelformset_factory
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
|
||||||
from models import Contact, ContactAddForm, ContactEditForm
|
from models import Contact, ContactAddForm, ContactEditForm
|
||||||
from utils import go_error
|
from utils import render_error
|
||||||
|
|
||||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ def contact_add(request):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error('小组ID必须为整数')
|
return render_error('小组ID必须为整数')
|
||||||
|
|
||||||
form = ContactAddForm(request.POST)
|
form = ContactAddForm(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
@@ -99,7 +99,7 @@ def contact_edit(request):
|
|||||||
contact = Contact.objects.get(user_email=user_email,
|
contact = Contact.objects.get(user_email=user_email,
|
||||||
contact_email=contact_email)
|
contact_email=contact_email)
|
||||||
except Contact.DoesNotExist:
|
except Contact.DoesNotExist:
|
||||||
return go_error(request, '联系人不存在')
|
return render_error(request, '联系人不存在')
|
||||||
else:
|
else:
|
||||||
contact.contact_name = contact_name
|
contact.contact_name = contact_name
|
||||||
contact.note = note
|
contact.note = note
|
||||||
@@ -110,7 +110,7 @@ def contact_edit(request):
|
|||||||
c = Contact.objects.filter(user_email=request.user.username,
|
c = Contact.objects.filter(user_email=request.user.username,
|
||||||
contact_email=contact_email)
|
contact_email=contact_email)
|
||||||
if not c:
|
if not c:
|
||||||
return go_error(request, '联系人不存在')
|
return render_error(request, '联系人不存在')
|
||||||
else:
|
else:
|
||||||
init_data = {'user_email':request.user.username,
|
init_data = {'user_email':request.user.username,
|
||||||
'contact_email':contact_email,
|
'contact_email':contact_email,
|
||||||
|
@@ -16,7 +16,7 @@ from signals import grpmsg_added, grpmsg_reply_added
|
|||||||
from seahub.contacts.models import Contact
|
from seahub.contacts.models import Contact
|
||||||
from seahub.notifications.models import UserNotification
|
from seahub.notifications.models import UserNotification
|
||||||
from seahub.profile.models import Profile
|
from seahub.profile.models import Profile
|
||||||
from seahub.utils import go_error, go_permission_error, validate_group_name
|
from seahub.utils import render_error, render_permission_error, validate_group_name
|
||||||
from seahub.views import validate_emailuser
|
from seahub.views import validate_emailuser
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -28,7 +28,7 @@ def group_list(request):
|
|||||||
"""
|
"""
|
||||||
group_name = request.POST.get('group_name')
|
group_name = request.POST.get('group_name')
|
||||||
if not validate_group_name(group_name):
|
if not validate_group_name(group_name):
|
||||||
return go_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
return render_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
|
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
|
||||||
@@ -39,7 +39,7 @@ def group_list(request):
|
|||||||
group_id)
|
group_id)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
error_msg = e.msg
|
error_msg = e.msg
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
groups = get_personal_groups(request.user.username);
|
groups = get_personal_groups(request.user.username);
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ def group_remove(request, group_id):
|
|||||||
# Check whether user is the group staff or admin
|
# Check whether user is the group staff or admin
|
||||||
if not ccnet_threaded_rpc.check_group_staff(group_id_int, request.user.username) \
|
if not ccnet_threaded_rpc.check_group_staff(group_id_int, request.user.username) \
|
||||||
and not request.user.is_staff:
|
and not request.user.is_staff:
|
||||||
return go_permission_error(request, u'只有小组管理员有权解散小组')
|
return render_permission_error(request, u'只有小组管理员有权解散小组')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.remove_group(group_id_int, request.user.username)
|
ccnet_threaded_rpc.remove_group(group_id_int, request.user.username)
|
||||||
@@ -70,7 +70,7 @@ def group_remove(request, group_id):
|
|||||||
return HttpResponseRedirect(reverse('org_groups',
|
return HttpResponseRedirect(reverse('org_groups',
|
||||||
args=[url_prefix]))
|
args=[url_prefix]))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
if request.GET.get('src', '') == 'orggroupadmin':
|
if request.GET.get('src', '') == 'orggroupadmin':
|
||||||
return HttpResponseRedirect(reverse('org_group_admin'))
|
return HttpResponseRedirect(reverse('org_group_admin'))
|
||||||
@@ -84,14 +84,14 @@ def group_quit(request, group_id):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return render_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.quit_group(group_id_int, request.user.username)
|
ccnet_threaded_rpc.quit_group(group_id_int, request.user.username)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int,
|
seafserv_threaded_rpc.remove_repo_group(group_id_int,
|
||||||
request.user.username)
|
request.user.username)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
@@ -108,10 +108,10 @@ def render_group_info(request, group_id, form):
|
|||||||
if group.id == group_id_int:
|
if group.id == group_id_int:
|
||||||
joined = True
|
joined = True
|
||||||
if not joined and not request.user.is_staff:
|
if not joined and not request.user.is_staff:
|
||||||
return go_error(request, u'未加入该小组')
|
return render_error(request, u'未加入该小组')
|
||||||
|
|
||||||
# if request.user.org and not request.user.org.is_staff:
|
# if request.user.org and not request.user.org.is_staff:
|
||||||
# return go_error(request, u'未加入该小组')
|
# return render_error(request, u'未加入该小组')
|
||||||
|
|
||||||
group = ccnet_threaded_rpc.get_group(group_id_int)
|
group = ccnet_threaded_rpc.get_group(group_id_int)
|
||||||
if not group:
|
if not group:
|
||||||
@@ -322,10 +322,10 @@ def group_members(request, group_id):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return render_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
if not check_group_staff(group_id_int, request.user):
|
if not check_group_staff(group_id_int, request.user):
|
||||||
return go_permission_error(request, u'只有小组管理员有权管理小组')
|
return render_permission_error(request, u'只有小组管理员有权管理小组')
|
||||||
|
|
||||||
group = ccnet_threaded_rpc.get_group(group_id_int)
|
group = ccnet_threaded_rpc.get_group(group_id_int)
|
||||||
if not group:
|
if not group:
|
||||||
@@ -354,26 +354,26 @@ def group_members(request, group_id):
|
|||||||
if not ccnet_threaded_rpc.org_user_exists(request.user.org.org_id,
|
if not ccnet_threaded_rpc.org_user_exists(request.user.org.org_id,
|
||||||
member_name):
|
member_name):
|
||||||
err_msg = u'当前企业不存在 %s 用户' % member_name
|
err_msg = u'当前企业不存在 %s 用户' % member_name
|
||||||
return go_error(request, err_msg)
|
return render_error(request, err_msg)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.group_add_member(group_id_int,
|
ccnet_threaded_rpc.group_add_member(group_id_int,
|
||||||
request.user.username,
|
request.user.username,
|
||||||
member_name)
|
member_name)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
else:
|
else:
|
||||||
for member_name in member_name_dict.keys():
|
for member_name in member_name_dict.keys():
|
||||||
if not validate_emailuser(member_name):
|
if not validate_emailuser(member_name):
|
||||||
err_msg = u'用户 %s 不存在' % member_name
|
err_msg = u'用户 %s 不存在' % member_name
|
||||||
return go_error(request, err_msg)
|
return render_error(request, err_msg)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.group_add_member(group_id_int,
|
ccnet_threaded_rpc.group_add_member(group_id_int,
|
||||||
request.user.username,
|
request.user.username,
|
||||||
member_name)
|
member_name)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
members = ccnet_threaded_rpc.get_group_members(group_id_int)
|
members = ccnet_threaded_rpc.get_group_members(group_id_int)
|
||||||
contacts = Contact.objects.filter(user_email=request.user.username)
|
contacts = Contact.objects.filter(user_email=request.user.username)
|
||||||
@@ -396,10 +396,10 @@ def group_remove_member(request, group_id, user_name):
|
|||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return render_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
if not check_group_staff(group_id_int, request.user):
|
if not check_group_staff(group_id_int, request.user):
|
||||||
return go_permission_error(request, u'只有小组管理员有权删除成员')
|
return render_permission_error(request, u'只有小组管理员有权删除成员')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_threaded_rpc.group_remove_member(group_id_int,
|
ccnet_threaded_rpc.group_remove_member(group_id_int,
|
||||||
@@ -407,7 +407,7 @@ def group_remove_member(request, group_id, user_name):
|
|||||||
user_name)
|
user_name)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int, user_name)
|
seafserv_threaded_rpc.remove_repo_group(group_id_int, user_name)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse('group_members', args=[group_id]))
|
return HttpResponseRedirect(reverse('group_members', args=[group_id]))
|
||||||
|
|
||||||
@@ -419,7 +419,7 @@ def group_share_repo(request, repo_id, group_id, from_email):
|
|||||||
# Check whether group exists
|
# Check whether group exists
|
||||||
group = ccnet_threaded_rpc.get_group(group_id)
|
group = ccnet_threaded_rpc.get_group(group_id)
|
||||||
if not group:
|
if not group:
|
||||||
return go_error(request, u'共享失败:小组不存在')
|
return render_error(request, u'共享失败:小组不存在')
|
||||||
|
|
||||||
# Check whether user belong to the group
|
# Check whether user belong to the group
|
||||||
joined = False
|
joined = False
|
||||||
@@ -428,10 +428,10 @@ def group_share_repo(request, repo_id, group_id, from_email):
|
|||||||
if group.props.id == group_id:
|
if group.props.id == group_id:
|
||||||
joined = True
|
joined = True
|
||||||
if not joined:
|
if not joined:
|
||||||
return go_error(request, u'共享失败:未加入该小组')
|
return render_error(request, u'共享失败:未加入该小组')
|
||||||
|
|
||||||
if seafserv_threaded_rpc.group_share_repo(repo_id, group_id, from_email, 'rw') != 0:
|
if seafserv_threaded_rpc.group_share_repo(repo_id, group_id, from_email, 'rw') != 0:
|
||||||
return go_error(request, u'共享失败:内部错误')
|
return render_error(request, u'共享失败:内部错误')
|
||||||
|
|
||||||
def group_unshare_repo(request, repo_id, group_id, from_email):
|
def group_unshare_repo(request, repo_id, group_id, from_email):
|
||||||
"""
|
"""
|
||||||
@@ -441,7 +441,7 @@ def group_unshare_repo(request, repo_id, group_id, from_email):
|
|||||||
# Check whether group exists
|
# Check whether group exists
|
||||||
group = ccnet_threaded_rpc.get_group(group_id)
|
group = ccnet_threaded_rpc.get_group(group_id)
|
||||||
if not group:
|
if not group:
|
||||||
return go_error(request, u'共享失败:小组不存在')
|
return render_error(request, u'共享失败:小组不存在')
|
||||||
|
|
||||||
# Check whether user belong to the group
|
# Check whether user belong to the group
|
||||||
joined = False
|
joined = False
|
||||||
@@ -450,12 +450,12 @@ def group_unshare_repo(request, repo_id, group_id, from_email):
|
|||||||
if group.props.id == group_id:
|
if group.props.id == group_id:
|
||||||
joined = True
|
joined = True
|
||||||
if not joined:
|
if not joined:
|
||||||
return go_error(request, u'共享失败:未加入该小组')
|
return render_error(request, u'共享失败:未加入该小组')
|
||||||
|
|
||||||
# Check whether user is group staff or the one share the repo
|
# Check whether user is group staff or the one share the repo
|
||||||
if not check_group_staff(group_id, from_email) and \
|
if not check_group_staff(group_id, from_email) and \
|
||||||
seafserv_threaded_rpc.get_group_repo_share_from(repo_id) != from_email:
|
seafserv_threaded_rpc.get_group_repo_share_from(repo_id) != from_email:
|
||||||
return go_permission_error(request, u'取消共享失败:只有小组管理员或共享目录发布者有权取消共享')
|
return render_permission_error(request, u'取消共享失败:只有小组管理员或共享目录发布者有权取消共享')
|
||||||
|
|
||||||
if seafserv_threaded_rpc.group_unshare_repo(repo_id, group_id, from_email) != 0:
|
if seafserv_threaded_rpc.group_unshare_repo(repo_id, group_id, from_email) != 0:
|
||||||
return go_error(request, u'共享失败:内部错误')
|
return render_error(request, u'共享失败:内部错误')
|
||||||
|
@@ -25,7 +25,7 @@ from notifications.models import UserNotification
|
|||||||
from registration.models import RegistrationProfile
|
from registration.models import RegistrationProfile
|
||||||
from seahub.forms import RepoCreateForm
|
from seahub.forms import RepoCreateForm
|
||||||
import seahub.settings as seahub_settings
|
import seahub.settings as seahub_settings
|
||||||
from seahub.utils import go_error, go_permission_error, validate_group_name, \
|
from seahub.utils import render_error, render_permission_error, validate_group_name, \
|
||||||
emails2list, gen_token
|
emails2list, gen_token
|
||||||
from seahub.views import myhome
|
from seahub.views import myhome
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ def create_org(request):
|
|||||||
return HttpResponseRedirect(\
|
return HttpResponseRedirect(\
|
||||||
reverse(org_info, args=[url_prefix]))
|
reverse(org_info, args=[url_prefix]))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
form = OrgCreateForm()
|
form = OrgCreateForm()
|
||||||
@@ -91,7 +91,7 @@ def org_groups(request, url_prefix):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
group_name = request.POST.get('group_name')
|
group_name = request.POST.get('group_name')
|
||||||
if not validate_group_name(group_name):
|
if not validate_group_name(group_name):
|
||||||
return go_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
return render_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
|
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
|
||||||
@@ -99,7 +99,7 @@ def org_groups(request, url_prefix):
|
|||||||
ccnet_threaded_rpc.add_org_group(org.org_id, group_id)
|
ccnet_threaded_rpc.add_org_group(org.org_id, group_id)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
error_msg = e.msg
|
error_msg = e.msg
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
groups = get_org_groups(org.org_id, 0, sys.maxint)
|
groups = get_org_groups(org.org_id, 0, sys.maxint)
|
||||||
return render_to_response('organizations/org_groups.html', {
|
return render_to_response('organizations/org_groups.html', {
|
||||||
|
@@ -11,7 +11,7 @@ from pysearpc import SearpcError
|
|||||||
|
|
||||||
from forms import ProfileForm
|
from forms import ProfileForm
|
||||||
from models import Profile
|
from models import Profile
|
||||||
from utils import go_error
|
from utils import render_error
|
||||||
from seahub.contacts.models import Contact
|
from seahub.contacts.models import Contact
|
||||||
|
|
||||||
#@login_required
|
#@login_required
|
||||||
@@ -32,7 +32,7 @@ from seahub.contacts.models import Contact
|
|||||||
# try:
|
# try:
|
||||||
# ccnet_threaded_rpc.remove_one_binding(request.user.username, peer_id)
|
# ccnet_threaded_rpc.remove_one_binding(request.user.username, peer_id)
|
||||||
# except SearpcError, e:
|
# except SearpcError, e:
|
||||||
# return go_error(request, e.msg)
|
# return render_error(request, e.msg)
|
||||||
#
|
#
|
||||||
# return HttpResponseRedirect(reverse('list_userids'))
|
# return HttpResponseRedirect(reverse('list_userids'))
|
||||||
|
|
||||||
|
@@ -17,7 +17,7 @@ from models import AnonymousShare
|
|||||||
#from seahub.contacts.models import Contact
|
#from seahub.contacts.models import Contact
|
||||||
from seahub.share.models import FileShare
|
from seahub.share.models import FileShare
|
||||||
from seahub.views import validate_owner, validate_emailuser
|
from seahub.views import validate_owner, validate_emailuser
|
||||||
from seahub.utils import go_permission_error
|
from seahub.utils import render_permission_error
|
||||||
from settings import ANONYMOUS_SHARE_COOKIE_TIMEOUT
|
from settings import ANONYMOUS_SHARE_COOKIE_TIMEOUT
|
||||||
from tokens import anon_share_token_generator
|
from tokens import anon_share_token_generator
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ def share_repo(request):
|
|||||||
|
|
||||||
# Test whether user is the repo owner
|
# Test whether user is the repo owner
|
||||||
if not validate_owner(request, repo_id):
|
if not validate_owner(request, repo_id):
|
||||||
return go_permission_error(request, u'只有目录拥有者有权共享目录')
|
return render_permission_error(request, u'只有目录拥有者有权共享目录')
|
||||||
|
|
||||||
# Handle the diffent separator
|
# Handle the diffent separator
|
||||||
to_email_str = email_or_group.replace(';',',')
|
to_email_str = email_or_group.replace(';',',')
|
||||||
|
4
utils.py
4
utils.py
@@ -27,7 +27,7 @@ PREVIEW_FILEEXT = {
|
|||||||
'Markdown': ('markdown', 'md'),
|
'Markdown': ('markdown', 'md'),
|
||||||
}
|
}
|
||||||
|
|
||||||
def go_permission_error(request, msg=None):
|
def render_permission_error(request, msg=None):
|
||||||
"""
|
"""
|
||||||
Return permisson error page.
|
Return permisson error page.
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ def go_permission_error(request, msg=None):
|
|||||||
'error_msg': msg or u'权限错误',
|
'error_msg': msg or u'权限错误',
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
def go_error(request, msg=None):
|
def render_error(request, msg=None):
|
||||||
"""
|
"""
|
||||||
Return normal error page.
|
Return normal error page.
|
||||||
|
|
||||||
|
132
views.py
132
views.py
@@ -40,7 +40,7 @@ from seahub.contacts.models import Contact
|
|||||||
from seahub.notifications.models import UserNotification
|
from seahub.notifications.models import UserNotification
|
||||||
from seahub.organizations.utils import clear_org_ctx, access_org_repo
|
from seahub.organizations.utils import clear_org_ctx, access_org_repo
|
||||||
from forms import AddUserForm, FileLinkShareForm, RepoCreateForm
|
from forms import AddUserForm, FileLinkShareForm, RepoCreateForm
|
||||||
from utils import go_permission_error, go_error, list_to_string, \
|
from utils import render_permission_error, render_error, list_to_string, \
|
||||||
get_httpserver_root, get_ccnetapplet_root, gen_token, \
|
get_httpserver_root, get_ccnetapplet_root, gen_token, \
|
||||||
calculate_repo_last_modify, valid_previewed_file, \
|
calculate_repo_last_modify, valid_previewed_file, \
|
||||||
check_filename_with_rename, get_accessible_repos, EMPTY_SHA1, \
|
check_filename_with_rename, get_accessible_repos, EMPTY_SHA1, \
|
||||||
@@ -150,7 +150,7 @@ def render_repo(request, repo_id, error=''):
|
|||||||
# Check whether user can view repo page
|
# Check whether user can view repo page
|
||||||
can_access = access_to_repo(request, repo_id, '')
|
can_access = access_to_repo(request, repo_id, '')
|
||||||
if not can_access:
|
if not can_access:
|
||||||
return go_permission_error(request, '无法访问该同步目录')
|
return render_permission_error(request, '无法访问该同步目录')
|
||||||
|
|
||||||
# Check whether use is repo owner
|
# Check whether use is repo owner
|
||||||
if validate_owner(request, repo_id):
|
if validate_owner(request, repo_id):
|
||||||
@@ -160,7 +160,7 @@ def render_repo(request, repo_id, error=''):
|
|||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
return go_error(request, u'该同步目录不存在')
|
return render_error(request, u'该同步目录不存在')
|
||||||
|
|
||||||
# query whether set password if repo is encrypted
|
# query whether set password if repo is encrypted
|
||||||
password_set = False
|
password_set = False
|
||||||
@@ -170,7 +170,7 @@ def render_repo(request, repo_id, error=''):
|
|||||||
if ret == 1:
|
if ret == 1:
|
||||||
password_set = True
|
password_set = True
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
# view newest worktree or history worktree
|
# view newest worktree or history worktree
|
||||||
commit_id = request.GET.get('commit_id', '')
|
commit_id = request.GET.get('commit_id', '')
|
||||||
@@ -200,7 +200,7 @@ def render_repo(request, repo_id, error=''):
|
|||||||
dirs = seafserv_threaded_rpc.list_dir_by_path(current_commit.id,
|
dirs = seafserv_threaded_rpc.list_dir_by_path(current_commit.id,
|
||||||
path.encode('utf-8'))
|
path.encode('utf-8'))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
for dirent in dirs:
|
for dirent in dirs:
|
||||||
if stat.S_ISDIR(dirent.props.mode):
|
if stat.S_ISDIR(dirent.props.mode):
|
||||||
dir_list.append(dirent)
|
dir_list.append(dirent)
|
||||||
@@ -220,7 +220,7 @@ def render_repo(request, repo_id, error=''):
|
|||||||
accessible_repos = get_accessible_repos(request, repo)
|
accessible_repos = get_accessible_repos(request, repo)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
error_msg = e.msg
|
error_msg = e.msg
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
else:
|
else:
|
||||||
accessible_repos = []
|
accessible_repos = []
|
||||||
|
|
||||||
@@ -298,12 +298,12 @@ def repo_upload_file(request, repo_id):
|
|||||||
if len(filename) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
if len(filename) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
||||||
remove_tmp_file()
|
remove_tmp_file()
|
||||||
error_msg = u"您上传的文件名称太长"
|
error_msg = u"您上传的文件名称太长"
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
if tmp_file.size > settings.MAX_UPLOAD_FILE_SIZE:
|
if tmp_file.size > settings.MAX_UPLOAD_FILE_SIZE:
|
||||||
error_msg = u"您上传的文件太大"
|
error_msg = u"您上传的文件太大"
|
||||||
remove_tmp_file()
|
remove_tmp_file()
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
seafserv_threaded_rpc.post_file (repo_id, tmp_file_path, parent_dir,
|
seafserv_threaded_rpc.post_file (repo_id, tmp_file_path, parent_dir,
|
||||||
@@ -326,7 +326,7 @@ def repo_update_file(request, repo_id):
|
|||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
target_file = request.GET.get('p')
|
target_file = request.GET.get('p')
|
||||||
if not target_file:
|
if not target_file:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
zipped = gen_path_link (target_file, repo.name)
|
zipped = gen_path_link (target_file, repo.name)
|
||||||
# TODO: per user quota, org user quota
|
# TODO: per user quota, org user quota
|
||||||
return render_to_response ('repo_update_file.html', {
|
return render_to_response ('repo_update_file.html', {
|
||||||
@@ -341,7 +341,7 @@ def repo_update_file(request, repo_id):
|
|||||||
############ POST ############
|
############ POST ############
|
||||||
target_file = request.POST.get('target_file')
|
target_file = request.POST.get('target_file')
|
||||||
if not target_file:
|
if not target_file:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
def render_update_file_error(error_msg):
|
def render_update_file_error(error_msg):
|
||||||
zipped = gen_path_link (target_file, repo.name)
|
zipped = gen_path_link (target_file, repo.name)
|
||||||
@@ -375,7 +375,7 @@ def repo_update_file(request, repo_id):
|
|||||||
if tmp_file.size > settings.MAX_UPLOAD_FILE_SIZE:
|
if tmp_file.size > settings.MAX_UPLOAD_FILE_SIZE:
|
||||||
error_msg = u"您上传的文件太大"
|
error_msg = u"您上传的文件太大"
|
||||||
remove_tmp_file()
|
remove_tmp_file()
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
parent_dir = os.path.dirname(target_file)
|
parent_dir = os.path.dirname(target_file)
|
||||||
filename = os.path.basename(target_file)
|
filename = os.path.basename(target_file)
|
||||||
@@ -397,13 +397,13 @@ def get_subdir(request):
|
|||||||
path = request.GET.get('path', '')
|
path = request.GET.get('path', '')
|
||||||
|
|
||||||
if not (repo_id and path):
|
if not (repo_id and path):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
latest_commit = get_commits(repo_id, 0, 1)[0]
|
latest_commit = get_commits(repo_id, 0, 1)[0]
|
||||||
try:
|
try:
|
||||||
dirents = seafserv_threaded_rpc.list_dir_by_path(latest_commit.id, path.encode('utf-8'))
|
dirents = seafserv_threaded_rpc.list_dir_by_path(latest_commit.id, path.encode('utf-8'))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
subdirs = []
|
subdirs = []
|
||||||
for dirent in dirents:
|
for dirent in dirents:
|
||||||
@@ -415,7 +415,7 @@ def get_subdir(request):
|
|||||||
try:
|
try:
|
||||||
dirs_ = seafserv_threaded_rpc.list_dir_by_path(latest_commit.id, path_.encode('utf-8'))
|
dirs_ = seafserv_threaded_rpc.list_dir_by_path(latest_commit.id, path_.encode('utf-8'))
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
for dirent_ in dirs_:
|
for dirent_ in dirs_:
|
||||||
if stat.S_ISDIR(dirent_.props.mode):
|
if stat.S_ISDIR(dirent_.props.mode):
|
||||||
@@ -448,15 +448,15 @@ def repo(request, repo_id):
|
|||||||
seafserv_threaded_rpc.set_passwd(repo_id, request.user.username, password)
|
seafserv_threaded_rpc.set_passwd(repo_id, request.user.username, password)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
if e.msg == 'Bad arguments':
|
if e.msg == 'Bad arguments':
|
||||||
return go_error(request, u'url 格式不正确')
|
return render_error(request, u'url 格式不正确')
|
||||||
elif e.msg == 'Repo is not encrypted':
|
elif e.msg == 'Repo is not encrypted':
|
||||||
return render_repo(request, repo_id)
|
return render_repo(request, repo_id)
|
||||||
elif e.msg == 'Incorrect password':
|
elif e.msg == 'Incorrect password':
|
||||||
return render_repo(request, repo_id, u'密码不正确,请重新输入')
|
return render_repo(request, repo_id, u'密码不正确,请重新输入')
|
||||||
elif e.msg == 'Internal server error':
|
elif e.msg == 'Internal server error':
|
||||||
return go_error(request, u'服务器内部故障')
|
return render_error(request, u'服务器内部故障')
|
||||||
else:
|
else:
|
||||||
return go_error(request, u'未知错误')
|
return render_error(request, u'未知错误')
|
||||||
|
|
||||||
return render_repo(request, repo_id)
|
return render_repo(request, repo_id)
|
||||||
|
|
||||||
@@ -466,7 +466,7 @@ def repo_history(request, repo_id):
|
|||||||
View repo history
|
View repo history
|
||||||
"""
|
"""
|
||||||
if not access_to_repo(request, repo_id, ''):
|
if not access_to_repo(request, repo_id, ''):
|
||||||
return go_permission_error(request, u'无法浏览该同步目录修改历史')
|
return render_permission_error(request, u'无法浏览该同步目录修改历史')
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
|
|
||||||
@@ -477,7 +477,7 @@ def repo_history(request, repo_id):
|
|||||||
if ret == 1:
|
if ret == 1:
|
||||||
password_set = True
|
password_set = True
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
if repo.props.encrypted and not password_set:
|
if repo.props.encrypted and not password_set:
|
||||||
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
||||||
@@ -519,7 +519,7 @@ def repo_history_revert(request, repo_id):
|
|||||||
Only repo owner can revert repo.
|
Only repo owner can revert repo.
|
||||||
"""
|
"""
|
||||||
if not validate_owner(request, repo_id):
|
if not validate_owner(request, repo_id):
|
||||||
return go_permission_error(request, u'只有同步目录拥有者有权还原目录')
|
return render_permission_error(request, u'只有同步目录拥有者有权还原目录')
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
@@ -532,14 +532,14 @@ def repo_history_revert(request, repo_id):
|
|||||||
if ret == 1:
|
if ret == 1:
|
||||||
password_set = True
|
password_set = True
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
if repo.props.encrypted and not password_set:
|
if repo.props.encrypted and not password_set:
|
||||||
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
||||||
|
|
||||||
commit_id = request.GET.get('commit_id', '')
|
commit_id = request.GET.get('commit_id', '')
|
||||||
if not commit_id:
|
if not commit_id:
|
||||||
return go_error(request, u'请指定历史记录 ID')
|
return render_error(request, u'请指定历史记录 ID')
|
||||||
|
|
||||||
res = request.user.username.split('@')
|
res = request.user.username.split('@')
|
||||||
user_name = res[0]
|
user_name = res[0]
|
||||||
@@ -548,13 +548,13 @@ def repo_history_revert(request, repo_id):
|
|||||||
seafserv_threaded_rpc.revert_on_server(repo_id, commit_id, user_name)
|
seafserv_threaded_rpc.revert_on_server(repo_id, commit_id, user_name)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
if e.msg == 'Bad arguments':
|
if e.msg == 'Bad arguments':
|
||||||
return go_error(request, u'非法参数')
|
return render_error(request, u'非法参数')
|
||||||
elif e.msg == 'No such repo':
|
elif e.msg == 'No such repo':
|
||||||
return go_error(request, u'同步目录不存在')
|
return render_error(request, u'同步目录不存在')
|
||||||
elif e.msg == "Commit doesn't exist":
|
elif e.msg == "Commit doesn't exist":
|
||||||
return go_error(request, u'指定的历史记录不存在')
|
return render_error(request, u'指定的历史记录不存在')
|
||||||
else:
|
else:
|
||||||
return go_error(request, u'未知错误')
|
return render_error(request, u'未知错误')
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse(repo_history, args=[repo_id]))
|
return HttpResponseRedirect(reverse(repo_history, args=[repo_id]))
|
||||||
|
|
||||||
@@ -635,7 +635,7 @@ def remove_repo(request, repo_id):
|
|||||||
if not validate_owner(request, repo_id) and not request.user.is_staff \
|
if not validate_owner(request, repo_id) and not request.user.is_staff \
|
||||||
and not request.user.org['is_staff']:
|
and not request.user.org['is_staff']:
|
||||||
err_msg = u'删除同步目录失败, 只有管理员或目录创建者有权删除目录。'
|
err_msg = u'删除同步目录失败, 只有管理员或目录创建者有权删除目录。'
|
||||||
return go_permission_error(request, err_msg)
|
return render_permission_error(request, err_msg)
|
||||||
|
|
||||||
seafserv_threaded_rpc.remove_repo(repo_id)
|
seafserv_threaded_rpc.remove_repo(repo_id)
|
||||||
next = request.GET.get('next', '/')
|
next = request.GET.get('next', '/')
|
||||||
@@ -780,7 +780,7 @@ def repo_view_file(request, repo_id):
|
|||||||
obj_id = None
|
obj_id = None
|
||||||
|
|
||||||
if not obj_id:
|
if not obj_id:
|
||||||
return go_error(request, '文件不存在')
|
return render_error(request, '文件不存在')
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
@@ -793,7 +793,7 @@ def repo_view_file(request, repo_id):
|
|||||||
seafserv_rpc.web_save_access_token(token, repo_id, obj_id,
|
seafserv_rpc.web_save_access_token(token, repo_id, obj_id,
|
||||||
'view', request.user.username)
|
'view', request.user.username)
|
||||||
else:
|
else:
|
||||||
go_permission_error(request, '无法查看该文件')
|
render_permission_error(request, '无法查看该文件')
|
||||||
|
|
||||||
# generate path and link
|
# generate path and link
|
||||||
zipped = gen_path_link(path, repo.name)
|
zipped = gen_path_link(path, repo.name)
|
||||||
@@ -923,7 +923,7 @@ def repo_access_file(request, repo_id, obj_id):
|
|||||||
if ret == 1:
|
if ret == 1:
|
||||||
password_set = True
|
password_set = True
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
if repo.props.encrypted and not password_set:
|
if repo.props.encrypted and not password_set:
|
||||||
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
return HttpResponseRedirect(reverse('repo', args=[repo_id]))
|
||||||
@@ -950,7 +950,7 @@ def repo_access_file(request, repo_id, obj_id):
|
|||||||
seafserv_rpc.web_save_access_token(token, repo_id, obj_id,
|
seafserv_rpc.web_save_access_token(token, repo_id, obj_id,
|
||||||
op, request.user.username)
|
op, request.user.username)
|
||||||
else:
|
else:
|
||||||
go_permission_error(request, '无法访问文件')
|
render_permission_error(request, '无法访问文件')
|
||||||
|
|
||||||
redirect_url = gen_file_get_url(token, file_name)
|
redirect_url = gen_file_get_url(token, file_name)
|
||||||
return HttpResponseRedirect(redirect_url)
|
return HttpResponseRedirect(redirect_url)
|
||||||
@@ -977,12 +977,12 @@ def repo_download(request):
|
|||||||
token = seafserv_threaded_rpc.get_repo_token_nonnull \
|
token = seafserv_threaded_rpc.get_repo_token_nonnull \
|
||||||
(repo_id, request.user.username)
|
(repo_id, request.user.username)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
|
|
||||||
addr, port = get_ccnet_server_addr_port ()
|
addr, port = get_ccnet_server_addr_port ()
|
||||||
|
|
||||||
if not (addr and port):
|
if not (addr and port):
|
||||||
return go_error(request, u"服务器设置错误")
|
return render_error(request, u"服务器设置错误")
|
||||||
|
|
||||||
ccnet_applet_root = get_ccnetapplet_root()
|
ccnet_applet_root = get_ccnetapplet_root()
|
||||||
email = urllib2.quote(request.user.username)
|
email = urllib2.quote(request.user.username)
|
||||||
@@ -1007,7 +1007,7 @@ def file_move(request):
|
|||||||
|
|
||||||
if not (src_repo_id and src_path and dst_repo_id \
|
if not (src_repo_id and src_path and dst_repo_id \
|
||||||
and dst_path and obj_name and obj_type and op):
|
and dst_path and obj_name and obj_type and op):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
# do nothing when dst is the same as src
|
# do nothing when dst is the same as src
|
||||||
if src_repo_id == dst_repo_id and src_path == dst_path:
|
if src_repo_id == dst_repo_id and src_path == dst_path:
|
||||||
@@ -1020,7 +1020,7 @@ def file_move(request):
|
|||||||
if dst_path.startswith(src_dir):
|
if dst_path.startswith(src_dir):
|
||||||
error_msg = u"不能把目录 %s %s到它的子目录 %s" \
|
error_msg = u"不能把目录 %s %s到它的子目录 %s" \
|
||||||
% (src_dir, u"复制" if op == 'cp' else u"移动", dst_path)
|
% (src_dir, u"复制" if op == 'cp' else u"移动", dst_path)
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
new_obj_name = check_filename_with_rename(dst_repo_id, dst_path, obj_name)
|
new_obj_name = check_filename_with_rename(dst_repo_id, dst_path, obj_name)
|
||||||
|
|
||||||
@@ -1034,7 +1034,7 @@ def file_move(request):
|
|||||||
dst_repo_id, dst_path, new_obj_name,
|
dst_repo_id, dst_path, new_obj_name,
|
||||||
request.user.username)
|
request.user.username)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
|
|
||||||
url = reverse('repo', args=[src_repo_id]) + ('?p=%s' % src_path)
|
url = reverse('repo', args=[src_repo_id]) + ('?p=%s' % src_path)
|
||||||
|
|
||||||
@@ -1071,17 +1071,17 @@ def repo_remove_share(request):
|
|||||||
to_email = request.GET.get('to', '')
|
to_email = request.GET.get('to', '')
|
||||||
if request.user.username != from_email and \
|
if request.user.username != from_email and \
|
||||||
request.user.username != to_email:
|
request.user.username != to_email:
|
||||||
return go_permission_error(request, u'取消共享失败')
|
return render_permission_error(request, u'取消共享失败')
|
||||||
seafserv_threaded_rpc.remove_share(repo_id, from_email, to_email)
|
seafserv_threaded_rpc.remove_share(repo_id, from_email, to_email)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
group_id_int = int(group_id)
|
group_id_int = int(group_id)
|
||||||
except:
|
except:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return render_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
if not check_group_staff(group_id_int, request.user) \
|
if not check_group_staff(group_id_int, request.user) \
|
||||||
and request.user.username != from_email:
|
and request.user.username != from_email:
|
||||||
return go_permission_error(request, u'取消共享失败')
|
return render_permission_error(request, u'取消共享失败')
|
||||||
from seahub.group.views import group_unshare_repo
|
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)
|
||||||
|
|
||||||
@@ -1218,7 +1218,7 @@ def user_info(request, email):
|
|||||||
return HttpResponseRedirect(reverse(myhome))
|
return HttpResponseRedirect(reverse(myhome))
|
||||||
|
|
||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
return go_permission_error(request, u'权限不足:无法查看该用户信息')
|
return render_permission_error(request, u'权限不足:无法查看该用户信息')
|
||||||
|
|
||||||
owned_repos = []
|
owned_repos = []
|
||||||
quota_usage = 0
|
quota_usage = 0
|
||||||
@@ -1487,28 +1487,28 @@ def repo_new_dir(request):
|
|||||||
|
|
||||||
if not new_dir_name:
|
if not new_dir_name:
|
||||||
error_msg = u"请输入新目录名"
|
error_msg = u"请输入新目录名"
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
if not (repo_id and parent_dir and user):
|
if not (repo_id and parent_dir and user):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
if len(new_dir_name) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
if len(new_dir_name) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
||||||
error_msg = u"您输入的目录名称过长"
|
error_msg = u"您输入的目录名称过长"
|
||||||
return go_error (request, error_msg)
|
return render_error (request, error_msg)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not is_valid_filename(new_dir_name):
|
if not is_valid_filename(new_dir_name):
|
||||||
error_msg = (u"您输入的目录名称 %s 包含非法字符" % new_dir_name)
|
error_msg = (u"您输入的目录名称 %s 包含非法字符" % new_dir_name)
|
||||||
return go_error (request, error_msg)
|
return render_error (request, error_msg)
|
||||||
except SearpcError,e:
|
except SearpcError,e:
|
||||||
return go_error (request, e.msg)
|
return render_error (request, e.msg)
|
||||||
|
|
||||||
new_dir_name = check_filename_with_rename(repo_id, parent_dir, new_dir_name)
|
new_dir_name = check_filename_with_rename(repo_id, parent_dir, new_dir_name)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
seafserv_threaded_rpc.post_dir(repo_id, parent_dir, new_dir_name, user)
|
seafserv_threaded_rpc.post_dir(repo_id, parent_dir, new_dir_name, user)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
|
|
||||||
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
@@ -1523,20 +1523,20 @@ def repo_rename_file(request):
|
|||||||
|
|
||||||
if not newname:
|
if not newname:
|
||||||
error_msg = u"新文件名不能为空"
|
error_msg = u"新文件名不能为空"
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
if len(newname) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
if len(newname) > settings.MAX_UPLOAD_FILE_NAME_LEN:
|
||||||
error_msg = u"新文件名太长"
|
error_msg = u"新文件名太长"
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
if not (repo_id and parent_dir and oldname):
|
if not (repo_id and parent_dir and oldname):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
seafserv_threaded_rpc.rename_file (repo_id, parent_dir,
|
seafserv_threaded_rpc.rename_file (repo_id, parent_dir,
|
||||||
oldname, newname, user)
|
oldname, newname, user)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
|
|
||||||
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
@@ -1547,7 +1547,7 @@ def validate_filename(request):
|
|||||||
filename = request.GET.get('filename')
|
filename = request.GET.get('filename')
|
||||||
|
|
||||||
if not (repo_id and filename):
|
if not (repo_id and filename):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
result = {'ret':'yes'}
|
result = {'ret':'yes'}
|
||||||
|
|
||||||
@@ -1600,20 +1600,20 @@ def render_file_revisions (request, repo_id):
|
|||||||
"""List all history versions of a file."""
|
"""List all history versions of a file."""
|
||||||
target_file = request.GET.get('p')
|
target_file = request.GET.get('p')
|
||||||
if not target_file:
|
if not target_file:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
error_msg = u"同步目录不存在"
|
error_msg = u"同步目录不存在"
|
||||||
return go_error(request, error_msg)
|
return render_error(request, error_msg)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
commits = seafserv_threaded_rpc.list_file_revisions(repo_id, target_file)
|
commits = seafserv_threaded_rpc.list_file_revisions(repo_id, target_file)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return render_error(request, e.msg)
|
||||||
|
|
||||||
if not commits:
|
if not commits:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
# Check whether use is repo owner
|
# Check whether use is repo owner
|
||||||
if validate_owner(request, repo_id):
|
if validate_owner(request, repo_id):
|
||||||
@@ -1627,14 +1627,14 @@ def render_file_revisions (request, repo_id):
|
|||||||
for commit in commits:
|
for commit in commits:
|
||||||
file_id, file_size = get_file_revision_id_size (commit.id, target_file)
|
file_id, file_size = get_file_revision_id_size (commit.id, target_file)
|
||||||
if not file_id or not file_size:
|
if not file_id or not file_size:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
commit.revision_file_size = file_size
|
commit.revision_file_size = file_size
|
||||||
if file_id == current_file_id:
|
if file_id == current_file_id:
|
||||||
commit.is_current_version = True
|
commit.is_current_version = True
|
||||||
else:
|
else:
|
||||||
commit.is_current_version = False
|
commit.is_current_version = False
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
|
|
||||||
return render_to_response('file_revisions.html', {
|
return render_to_response('file_revisions.html', {
|
||||||
'repo': repo,
|
'repo': repo,
|
||||||
@@ -1646,26 +1646,26 @@ def render_file_revisions (request, repo_id):
|
|||||||
@login_required
|
@login_required
|
||||||
def file_revisions(request, repo_id):
|
def file_revisions(request, repo_id):
|
||||||
if request.method != 'GET':
|
if request.method != 'GET':
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
op = request.GET.get('op')
|
op = request.GET.get('op')
|
||||||
if not op:
|
if not op:
|
||||||
return render_file_revisions(request, repo_id)
|
return render_file_revisions(request, repo_id)
|
||||||
elif op != 'revert' and op != 'download' and op != 'view':
|
elif op != 'revert' and op != 'download' and op != 'view':
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
commit_id = request.GET.get('commit')
|
commit_id = request.GET.get('commit')
|
||||||
path = request.GET.get('p')
|
path = request.GET.get('p')
|
||||||
|
|
||||||
if not (commit_id and path):
|
if not (commit_id and path):
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
if op == 'revert':
|
if op == 'revert':
|
||||||
try:
|
try:
|
||||||
seafserv_threaded_rpc.revert_file (repo_id, commit_id,
|
seafserv_threaded_rpc.revert_file (repo_id, commit_id,
|
||||||
path, request.user.username)
|
path, request.user.username)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
else:
|
else:
|
||||||
parent_dir = os.path.dirname(path)
|
parent_dir = os.path.dirname(path)
|
||||||
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
url = reverse('repo', args=[repo_id]) + ('?p=%s' % parent_dir)
|
||||||
@@ -1678,14 +1678,14 @@ def file_revisions(request, repo_id):
|
|||||||
seafdir = seafserv_threaded_rpc.list_dir_by_path (commit_id, \
|
seafdir = seafserv_threaded_rpc.list_dir_by_path (commit_id, \
|
||||||
parent_dir.encode('utf-8'))
|
parent_dir.encode('utf-8'))
|
||||||
if not seafdir:
|
if not seafdir:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
# for ... else ...
|
# for ... else ...
|
||||||
for dirent in seafdir:
|
for dirent in seafdir:
|
||||||
if dirent.obj_name == file_name:
|
if dirent.obj_name == file_name:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
|
|
||||||
url = reverse('repo_access_file', args=[repo_id, dirent.obj_id])
|
url = reverse('repo_access_file', args=[repo_id, dirent.obj_id])
|
||||||
url += '?file_name=%s&op=download' % file_name
|
url += '?file_name=%s&op=download' % file_name
|
||||||
@@ -1694,11 +1694,11 @@ def file_revisions(request, repo_id):
|
|||||||
try:
|
try:
|
||||||
return handle_download()
|
return handle_download()
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
return go_error(request, str(e))
|
return render_error(request, str(e))
|
||||||
elif op == 'view':
|
elif op == 'view':
|
||||||
seafile_id = get_file_revision_id_size (commit_id, path)[0]
|
seafile_id = get_file_revision_id_size (commit_id, path)[0]
|
||||||
if not seafile_id:
|
if not seafile_id:
|
||||||
return go_error(request)
|
return render_error(request)
|
||||||
file_name = os.path.basename(path)
|
file_name = os.path.basename(path)
|
||||||
url = reverse(repo_view_file, args=[repo_id])
|
url = reverse(repo_view_file, args=[repo_id])
|
||||||
url += '?obj_id=%s&commit_id=%s&p=%s' % (seafile_id, commit_id, path)
|
url += '?obj_id=%s&commit_id=%s&p=%s' % (seafile_id, commit_id, path)
|
||||||
@@ -1771,7 +1771,7 @@ def view_shared_file(request, token):
|
|||||||
obj_id = None
|
obj_id = None
|
||||||
|
|
||||||
if not obj_id:
|
if not obj_id:
|
||||||
return go_error(request, '文件不存在')
|
return render_error(request, '文件不存在')
|
||||||
|
|
||||||
repo = get_repo(repo_id)
|
repo = get_repo(repo_id)
|
||||||
if not repo:
|
if not repo:
|
||||||
|
Reference in New Issue
Block a user