1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 10:50:24 +00:00

Change error function names

This commit is contained in:
xiez
2012-07-30 20:44:32 +08:00
parent ad6dfbab7b
commit 220f9c9c24
8 changed files with 108 additions and 108 deletions

View File

@@ -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:

View File

@@ -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,

View File

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

View File

@@ -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', {

View File

@@ -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'))

View File

@@ -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(';',',')

View File

@@ -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
View File

@@ -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: