mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 15:38:15 +00:00
Use threaded rpc.
This commit is contained in:
@@ -11,11 +11,11 @@ from auth import authenticate, login
|
|||||||
from registration import signals
|
from registration import signals
|
||||||
#from registration.forms import RegistrationForm
|
#from registration.forms import RegistrationForm
|
||||||
from registration.models import RegistrationProfile
|
from registration.models import RegistrationProfile
|
||||||
from seaserv import ccnet_rpc, get_ccnetuser
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_ccnetuser
|
||||||
|
|
||||||
class UserManager(object):
|
class UserManager(object):
|
||||||
def create_user(self, username, password=None, is_staff=False, is_active=False):
|
def create_user(self, username, password=None, is_staff=False, is_active=False):
|
||||||
ccnet_rpc.add_emailuser(username, password, int(is_staff), int(is_active))
|
ccnet_threaded_rpc.add_emailuser(username, password, int(is_staff), int(is_active))
|
||||||
|
|
||||||
ccnetuser = get_ccnetuser(username=username)
|
ccnetuser = get_ccnetuser(username=username)
|
||||||
return ccnetuser
|
return ccnetuser
|
||||||
@@ -48,7 +48,7 @@ class CcnetUser(object):
|
|||||||
|
|
||||||
def validate_emailuser(self, email, raw_password):
|
def validate_emailuser(self, email, raw_password):
|
||||||
self.set_password(raw_password)
|
self.set_password(raw_password)
|
||||||
return ccnet_rpc.validate_emailuser(email, raw_password)
|
return ccnet_threaded_rpc.validate_emailuser(email, raw_password)
|
||||||
|
|
||||||
def is_authenticated(self):
|
def is_authenticated(self):
|
||||||
"""
|
"""
|
||||||
@@ -65,9 +65,9 @@ class CcnetUser(object):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
emailuser = ccnet_rpc.get_emailuser(self.username)
|
emailuser = ccnet_threaded_rpc.get_emailuser(self.username)
|
||||||
if emailuser:
|
if emailuser:
|
||||||
ccnet_rpc.update_emailuser(self.id, self.password,
|
ccnet_threaded_rpc.update_emailuser(self.id, self.password,
|
||||||
int(self.is_staff), int(self.is_active))
|
int(self.is_staff), int(self.is_active))
|
||||||
else:
|
else:
|
||||||
self.objects.create_user(username=self.username,
|
self.objects.create_user(username=self.username,
|
||||||
@@ -79,8 +79,8 @@ class CcnetUser(object):
|
|||||||
"""
|
"""
|
||||||
Remove from ccnet EmailUser table and Binding table
|
Remove from ccnet EmailUser table and Binding table
|
||||||
"""
|
"""
|
||||||
ccnet_rpc.remove_emailuser(self.username)
|
ccnet_threaded_rpc.remove_emailuser(self.username)
|
||||||
ccnet_rpc.remove_binding(self.username)
|
ccnet_threaded_rpc.remove_binding(self.username)
|
||||||
|
|
||||||
def get_and_delete_messages(self):
|
def get_and_delete_messages(self):
|
||||||
messages = []
|
messages = []
|
||||||
@@ -201,7 +201,7 @@ class RegistrationBackend(object):
|
|||||||
|
|
||||||
userid = kwargs['userid']
|
userid = kwargs['userid']
|
||||||
if userid:
|
if userid:
|
||||||
ccnet_rpc.add_binding(new_user.username, userid)
|
ccnet_threaded_rpc.add_binding(new_user.username, userid)
|
||||||
|
|
||||||
signals.user_registered.send(sender=self.__class__,
|
signals.user_registered.send(sender=self.__class__,
|
||||||
user=new_user,
|
user=new_user,
|
||||||
@@ -295,7 +295,7 @@ class RegistrationForm(forms.Form):
|
|||||||
|
|
||||||
def clean_email(self):
|
def clean_email(self):
|
||||||
email = self.cleaned_data['email']
|
email = self.cleaned_data['email']
|
||||||
emailuser = ccnet_rpc.get_emailuser(email)
|
emailuser = ccnet_threaded_rpc.get_emailuser(email)
|
||||||
if not emailuser:
|
if not emailuser:
|
||||||
return self.cleaned_data['email']
|
return self.cleaned_data['email']
|
||||||
else:
|
else:
|
||||||
@@ -336,7 +336,7 @@ class OrgRegistrationForm(RegistrationForm):
|
|||||||
|
|
||||||
def clean_url_prefix(self):
|
def clean_url_prefix(self):
|
||||||
url_prefix = self.cleaned_data['url_prefix']
|
url_prefix = self.cleaned_data['url_prefix']
|
||||||
org = ccnet_rpc.get_org_by_url_prefix(url_prefix)
|
org = ccnet_threaded_rpc.get_org_by_url_prefix(url_prefix)
|
||||||
if not org:
|
if not org:
|
||||||
return url_prefix
|
return url_prefix
|
||||||
else:
|
else:
|
||||||
@@ -385,7 +385,7 @@ class OrgRegistrationBackend(object):
|
|||||||
send_email=False)
|
send_email=False)
|
||||||
# create orgnization account
|
# create orgnization account
|
||||||
try:
|
try:
|
||||||
ccnet_rpc.create_org(org_name, url_prefix, username)
|
ccnet_threaded_rpc.create_org(org_name, url_prefix, username)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@@ -10,7 +10,7 @@ from django.forms.models import modelformset_factory
|
|||||||
from models import Contact
|
from models import Contact
|
||||||
from models import AddContactForm
|
from models import AddContactForm
|
||||||
|
|
||||||
from seaserv import ccnet_rpc
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def contact_list(request):
|
def contact_list(request):
|
||||||
@@ -29,7 +29,7 @@ def contact_add(request):
|
|||||||
contact_email = form.cleaned_data['contact_email']
|
contact_email = form.cleaned_data['contact_email']
|
||||||
contact_name = form.cleaned_data['contact_name']
|
contact_name = form.cleaned_data['contact_name']
|
||||||
note = form.cleaned_data['note']
|
note = form.cleaned_data['note']
|
||||||
emailuser = ccnet_rpc.get_emailuser(contact_email)
|
emailuser = ccnet_threaded_rpc.get_emailuser(contact_email)
|
||||||
if not emailuser:
|
if not emailuser:
|
||||||
error_msg = u"用户不存在"
|
error_msg = u"用户不存在"
|
||||||
elif contact_email == request.user.username:
|
elif contact_email == request.user.username:
|
||||||
@@ -38,7 +38,7 @@ def contact_add(request):
|
|||||||
contact_email=contact_email).count() > 0:
|
contact_email=contact_email).count() > 0:
|
||||||
error_msg = u"联系人列表中已有该用户"
|
error_msg = u"联系人列表中已有该用户"
|
||||||
elif request.user.org and \
|
elif request.user.org and \
|
||||||
not ccnet_rpc.org_user_exists(request.user.org.org_id,
|
not ccnet_threaded_rpc.org_user_exists(request.user.org.org_id,
|
||||||
contact_email):
|
contact_email):
|
||||||
error_msg = u"当前企业不存在该用户"
|
error_msg = u"当前企业不存在该用户"
|
||||||
else:
|
else:
|
||||||
@@ -70,7 +70,7 @@ def contact_edit(request):
|
|||||||
contact_email = form.cleaned_data['contact_email']
|
contact_email = form.cleaned_data['contact_email']
|
||||||
contact_name = form.cleaned_data['contact_name']
|
contact_name = form.cleaned_data['contact_name']
|
||||||
note = form.cleaned_data['note']
|
note = form.cleaned_data['note']
|
||||||
emailuser = ccnet_rpc.get_emailuser(contact_email)
|
emailuser = ccnet_threaded_rpc.get_emailuser(contact_email)
|
||||||
if not emailuser:
|
if not emailuser:
|
||||||
error_msg = u"用户不存在"
|
error_msg = u"用户不存在"
|
||||||
elif contact_email == request.user.username:
|
elif contact_email == request.user.username:
|
||||||
|
4
forms.py
4
forms.py
@@ -2,7 +2,7 @@ from django import forms
|
|||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from seaserv import ccnet_rpc
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc
|
||||||
|
|
||||||
class AddUserForm(forms.Form):
|
class AddUserForm(forms.Form):
|
||||||
"""
|
"""
|
||||||
@@ -15,7 +15,7 @@ class AddUserForm(forms.Form):
|
|||||||
|
|
||||||
def clean_email(self):
|
def clean_email(self):
|
||||||
email = self.cleaned_data['email']
|
email = self.cleaned_data['email']
|
||||||
emailuser = ccnet_rpc.get_emailuser(email)
|
emailuser = ccnet_threaded_rpc.get_emailuser(email)
|
||||||
if not emailuser:
|
if not emailuser:
|
||||||
return self.cleaned_data['email']
|
return self.cleaned_data['email']
|
||||||
else:
|
else:
|
||||||
|
@@ -5,7 +5,7 @@ from django.shortcuts import render_to_response, redirect
|
|||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
|
|
||||||
from auth.decorators import login_required
|
from auth.decorators import login_required
|
||||||
from seaserv import ccnet_rpc, seafserv_threaded_rpc, get_repo, \
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, seafserv_threaded_rpc, get_repo, \
|
||||||
get_group_repoids, check_group_staff
|
get_group_repoids, check_group_staff
|
||||||
from pysearpc import SearpcError
|
from pysearpc import SearpcError
|
||||||
|
|
||||||
@@ -25,17 +25,17 @@ def group_list(request):
|
|||||||
return go_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
return go_error(request, u'小组名称只能包含中英文字符,数字及下划线')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group_id = ccnet_rpc.create_group(group_name.encode('utf-8'),
|
group_id = ccnet_threaded_rpc.create_group(group_name.encode('utf-8'),
|
||||||
request.user.username)
|
request.user.username)
|
||||||
# TODO: transaction?
|
# TODO: transaction?
|
||||||
if request.user.org and group_id > 0:
|
if request.user.org and group_id > 0:
|
||||||
ccnet_rpc.add_org_group(request.user.org.org_id,
|
ccnet_threaded_rpc.add_org_group(request.user.org.org_id,
|
||||||
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 go_error(request, error_msg)
|
||||||
|
|
||||||
groups = ccnet_rpc.get_groups(request.user.username);
|
groups = ccnet_threaded_rpc.get_groups(request.user.username);
|
||||||
|
|
||||||
return render_to_response("group/groups.html", {
|
return render_to_response("group/groups.html", {
|
||||||
"groups": groups,
|
"groups": groups,
|
||||||
@@ -59,16 +59,16 @@ def group_remove(request, group_id):
|
|||||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
# Check whether user is the group staff or admin
|
# Check whether user is the group staff or admin
|
||||||
if not ccnet_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 go_permission_error(request, u'只有小组管理员有权解散小组')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_rpc.remove_group(group_id_int, request.user.username)
|
ccnet_threaded_rpc.remove_group(group_id_int, request.user.username)
|
||||||
seafserv_threaded_rpc.remove_repo_group(group_id_int, None)
|
seafserv_threaded_rpc.remove_repo_group(group_id_int, None)
|
||||||
|
|
||||||
if request.user.org:
|
if request.user.org:
|
||||||
ccnet_rpc.remove_org_group(request.user.org.org_id,
|
ccnet_threaded_rpc.remove_org_group(request.user.org.org_id,
|
||||||
group_id_int)
|
group_id_int)
|
||||||
except SearpcError, e:
|
except SearpcError, e:
|
||||||
return go_error(request, e.msg)
|
return go_error(request, e.msg)
|
||||||
@@ -88,7 +88,7 @@ def group_quit(request, group_id):
|
|||||||
return go_error(request, u'group id 不是有效参数')
|
return go_error(request, u'group id 不是有效参数')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_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:
|
||||||
@@ -105,14 +105,14 @@ def group_info(request, group_id):
|
|||||||
|
|
||||||
# Check whether user belong to the group or admin
|
# Check whether user belong to the group or admin
|
||||||
joined = False
|
joined = False
|
||||||
groups = ccnet_rpc.get_groups(request.user.username)
|
groups = ccnet_threaded_rpc.get_groups(request.user.username)
|
||||||
for group in groups:
|
for group in groups:
|
||||||
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 go_error(request, u'未加入该小组')
|
||||||
|
|
||||||
group = ccnet_rpc.get_group(group_id_int)
|
group = ccnet_threaded_rpc.get_group(group_id_int)
|
||||||
if not group:
|
if not group:
|
||||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ def group_info(request, group_id):
|
|||||||
else:
|
else:
|
||||||
is_staff = False
|
is_staff = False
|
||||||
|
|
||||||
members = ccnet_rpc.get_group_members(group_id_int)
|
members = ccnet_threaded_rpc.get_group_members(group_id_int)
|
||||||
managers = []
|
managers = []
|
||||||
common_members = []
|
common_members = []
|
||||||
for member in members:
|
for member in members:
|
||||||
@@ -166,7 +166,7 @@ def group_members(request, 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 go_permission_error(request, u'只有小组管理员有权管理小组')
|
||||||
|
|
||||||
group = ccnet_rpc.get_group(group_id_int)
|
group = ccnet_threaded_rpc.get_group(group_id_int)
|
||||||
if not group:
|
if not group:
|
||||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||||
|
|
||||||
@@ -190,13 +190,13 @@ def group_members(request, group_id):
|
|||||||
|
|
||||||
if request.user.org:
|
if request.user.org:
|
||||||
for member_name in member_name_dict.keys():
|
for member_name in member_name_dict.keys():
|
||||||
if not ccnet_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 go_error(request, err_msg)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
ccnet_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:
|
||||||
@@ -208,13 +208,13 @@ def group_members(request, group_id):
|
|||||||
return go_error(request, err_msg)
|
return go_error(request, err_msg)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
ccnet_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 go_error(request, e.msg)
|
||||||
|
|
||||||
members = ccnet_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)
|
||||||
|
|
||||||
return render_to_response('group/group_manage.html', {
|
return render_to_response('group/group_manage.html', {
|
||||||
@@ -249,7 +249,7 @@ def group_remove_member(request, group_id, user_name):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return go_error(request, u'group id 不是有效参数')
|
return go_error(request, u'group id 不是有效参数')
|
||||||
try:
|
try:
|
||||||
ccnet_rpc.group_remove_member(group_id_int, request.user.username,
|
ccnet_threaded_rpc.group_remove_member(group_id_int, request.user.username,
|
||||||
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:
|
||||||
@@ -263,13 +263,13 @@ def group_share_repo(request, repo_id, group_id, from_email):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
# Check whether group exists
|
# Check whether group exists
|
||||||
group = ccnet_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 go_error(request, u'共享失败:小组不存在')
|
||||||
|
|
||||||
# Check whether user belong to the group
|
# Check whether user belong to the group
|
||||||
joined = False
|
joined = False
|
||||||
groups = ccnet_rpc.get_groups(request.user.username)
|
groups = ccnet_threaded_rpc.get_groups(request.user.username)
|
||||||
for group in groups:
|
for group in groups:
|
||||||
if group.props.id == group_id:
|
if group.props.id == group_id:
|
||||||
joined = True
|
joined = True
|
||||||
@@ -285,13 +285,13 @@ def group_unshare_repo(request, repo_id, group_id, from_email):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
# Check whether group exists
|
# Check whether group exists
|
||||||
group = ccnet_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 go_error(request, u'共享失败:小组不存在')
|
||||||
|
|
||||||
# Check whether user belong to the group
|
# Check whether user belong to the group
|
||||||
joined = False
|
joined = False
|
||||||
groups = ccnet_rpc.get_groups(from_email)
|
groups = ccnet_threaded_rpc.get_groups(from_email)
|
||||||
for group in groups:
|
for group in groups:
|
||||||
if group.props.id == group_id:
|
if group.props.id == group_id:
|
||||||
joined = True
|
joined = True
|
||||||
|
@@ -6,7 +6,7 @@ from django.shortcuts import render_to_response, get_object_or_404
|
|||||||
from django.template import Context, RequestContext
|
from django.template import Context, RequestContext
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
|
||||||
from seaserv import ccnet_rpc, get_binding_peerids
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_binding_peerids
|
||||||
from pysearpc import SearpcError
|
from pysearpc import SearpcError
|
||||||
|
|
||||||
from forms import ProfileForm
|
from forms import ProfileForm
|
||||||
@@ -18,7 +18,7 @@ from seahub.contacts.models import Contact
|
|||||||
def list_userids(request):
|
def list_userids(request):
|
||||||
peer_list = []
|
peer_list = []
|
||||||
try:
|
try:
|
||||||
peers = ccnet_rpc.get_peers_by_email(request.user.username)
|
peers = ccnet_threaded_rpc.get_peers_by_email(request.user.username)
|
||||||
except:
|
except:
|
||||||
peers = None
|
peers = None
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ def logout_relay(request):
|
|||||||
peer_id = request.GET.get('peer_id', '')
|
peer_id = request.GET.get('peer_id', '')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ccnet_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 go_error(request, e.msg)
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ def user_profile(request, user):
|
|||||||
err_msg = ''
|
err_msg = ''
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user_check = ccnet_rpc.get_emailuser(user)
|
user_check = ccnet_threaded_rpc.get_emailuser(user)
|
||||||
except:
|
except:
|
||||||
user_check = None
|
user_check = None
|
||||||
|
|
||||||
|
@@ -9,7 +9,7 @@ from auth.decorators import login_required
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.sites.models import Site, RequestSite
|
from django.contrib.sites.models import Site, RequestSite
|
||||||
from pysearpc import SearpcError
|
from pysearpc import SearpcError
|
||||||
from seaserv import seafserv_threaded_rpc, get_repo, ccnet_rpc
|
from seaserv import seafserv_threaded_rpc, get_repo, ccnet_rpc, ccnet_threaded_rpc
|
||||||
|
|
||||||
from forms import RepoShareForm
|
from forms import RepoShareForm
|
||||||
from models import AnonymousShare
|
from models import AnonymousShare
|
||||||
@@ -63,7 +63,7 @@ def share_repo(request):
|
|||||||
group_name = to_email.split(' ')[0]
|
group_name = to_email.split(' ')[0]
|
||||||
group_creator = to_email.split(' ')[1]
|
group_creator = to_email.split(' ')[1]
|
||||||
# get all the groups the user joined
|
# get all the groups the user joined
|
||||||
groups = ccnet_rpc.get_groups(request.user.username)
|
groups = ccnet_threaded_rpc.get_groups(request.user.username)
|
||||||
find = False
|
find = False
|
||||||
for group in groups:
|
for group in groups:
|
||||||
# for every group that user joined, if group name and
|
# for every group that user joined, if group name and
|
||||||
@@ -117,7 +117,7 @@ def share_admin(request):
|
|||||||
if not repo:
|
if not repo:
|
||||||
continue
|
continue
|
||||||
group_id = group_repo.props.group_id
|
group_id = group_repo.props.group_id
|
||||||
group = ccnet_rpc.get_group(int(group_id))
|
group = ccnet_threaded_rpc.get_group(int(group_id))
|
||||||
if not group:
|
if not group:
|
||||||
continue
|
continue
|
||||||
repo.props.shared_email = group.props.group_name
|
repo.props.shared_email = group.props.group_name
|
||||||
|
@@ -10,7 +10,7 @@ from django.template.loader import render_to_string
|
|||||||
from django.utils.hashcompat import sha_constructor
|
from django.utils.hashcompat import sha_constructor
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from seaserv import ccnet_rpc, get_ccnetuser
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_ccnetuser
|
||||||
|
|
||||||
SHA1_RE = re.compile('^[a-f0-9]{40}$')
|
SHA1_RE = re.compile('^[a-f0-9]{40}$')
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@ class RegistrationManager(models.Manager):
|
|||||||
if profile.activation_key_expired():
|
if profile.activation_key_expired():
|
||||||
ccnetuser = get_ccnetuser(userid=profile.emailuser_id)
|
ccnetuser = get_ccnetuser(userid=profile.emailuser_id)
|
||||||
if not ccnetuser.is_active:
|
if not ccnetuser.is_active:
|
||||||
ccnet_rpc.remove_emailuser(ccnetuser.username)
|
ccnet_threaded_rpc.remove_emailuser(ccnetuser.username)
|
||||||
|
|
||||||
class RegistrationProfile(models.Model):
|
class RegistrationProfile(models.Model):
|
||||||
"""
|
"""
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
import service
|
import service
|
||||||
from service import cclient, ccnet_rpc, monitor_rpc, seafserv_rpc, \
|
from service import cclient, ccnet_rpc, monitor_rpc, seafserv_rpc, \
|
||||||
seafserv_threaded_rpc
|
seafserv_threaded_rpc, ccnet_threaded_rpc
|
||||||
from service import translate_peerid, translate_msgtime, translate_groupid, \
|
from service import translate_peerid, translate_msgtime, translate_groupid, \
|
||||||
translate_userid, translate_msgtime2, translate_time_sec, \
|
translate_userid, translate_msgtime2, translate_time_sec, \
|
||||||
translate_time_usec, get_peer_avatar_url, get_user_avatar_url, \
|
translate_time_usec, get_peer_avatar_url, get_user_avatar_url, \
|
||||||
|
@@ -112,6 +112,7 @@ else:
|
|||||||
|
|
||||||
pool = ccnet.ClientPool(CCNET_CONF_PATH)
|
pool = ccnet.ClientPool(CCNET_CONF_PATH)
|
||||||
ccnet_rpc = ccnet.CcnetRpcClient(pool, req_pool=True)
|
ccnet_rpc = ccnet.CcnetRpcClient(pool, req_pool=True)
|
||||||
|
ccnet_threaded_rpc = ccnet.CcnetThreadedRpcClient(pool, req_pool=True)
|
||||||
monitor_rpc = seafile.MonitorRpcClient(pool)
|
monitor_rpc = seafile.MonitorRpcClient(pool)
|
||||||
seafserv_rpc = seafile.ServerRpcClient(pool, req_pool=True)
|
seafserv_rpc = seafile.ServerRpcClient(pool, req_pool=True)
|
||||||
seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(pool, req_pool=True)
|
seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(pool, req_pool=True)
|
||||||
@@ -122,7 +123,7 @@ def translate_userid(user_id):
|
|||||||
try:
|
try:
|
||||||
user = user_db[user_id]
|
user = user_db[user_id]
|
||||||
except:
|
except:
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
if user:
|
if user:
|
||||||
user_db[user_id] = user
|
user_db[user_id] = user
|
||||||
else:
|
else:
|
||||||
@@ -137,7 +138,7 @@ def translate_userid_simple(user_id):
|
|||||||
try:
|
try:
|
||||||
user = user_db[user_id]
|
user = user_db[user_id]
|
||||||
except:
|
except:
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
if user:
|
if user:
|
||||||
user_db[user_id] = user
|
user_db[user_id] = user
|
||||||
else:
|
else:
|
||||||
@@ -192,7 +193,7 @@ def get_peer_avatar_url(peer_id):
|
|||||||
try:
|
try:
|
||||||
user = user_db[peer.props.user_id]
|
user = user_db[peer.props.user_id]
|
||||||
except:
|
except:
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
if user:
|
if user:
|
||||||
user_db[user_id] = user
|
user_db[user_id] = user
|
||||||
else:
|
else:
|
||||||
@@ -203,7 +204,7 @@ def get_user_avatar_url(user_id):
|
|||||||
try:
|
try:
|
||||||
user = user_db[user_id]
|
user = user_db[user_id]
|
||||||
except:
|
except:
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
if user:
|
if user:
|
||||||
user_db[user_id] = user
|
user_db[user_id] = user
|
||||||
else:
|
else:
|
||||||
@@ -217,7 +218,7 @@ def translate_groupid(group_id):
|
|||||||
try:
|
try:
|
||||||
group = group_db[group_id]
|
group = group_db[group_id]
|
||||||
except:
|
except:
|
||||||
group = ccnet_rpc.get_group(group_id)
|
group = ccnet_threaded_rpc.get_group(group_id)
|
||||||
if group:
|
if group:
|
||||||
group_db[group_id] = group
|
group_db[group_id] = group
|
||||||
else:
|
else:
|
||||||
@@ -279,7 +280,7 @@ def get_peers_by_myrole(myrole):
|
|||||||
return peers
|
return peers
|
||||||
|
|
||||||
def get_users():
|
def get_users():
|
||||||
user_ids = ccnet_rpc.list_users()
|
user_ids = ccnet_threaded_rpc.list_users()
|
||||||
if not user_ids:
|
if not user_ids:
|
||||||
return []
|
return []
|
||||||
users = []
|
users = []
|
||||||
@@ -287,26 +288,26 @@ def get_users():
|
|||||||
# too handle the ending '\n'
|
# too handle the ending '\n'
|
||||||
if user_id == '':
|
if user_id == '':
|
||||||
continue
|
continue
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
users.append(user)
|
users.append(user)
|
||||||
return users
|
return users
|
||||||
|
|
||||||
|
|
||||||
def get_user(user_id):
|
def get_user(user_id):
|
||||||
user = ccnet_rpc.get_user(user_id)
|
user = ccnet_threaded_rpc.get_user(user_id)
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def get_ccnetuser(username=None, userid=None):
|
def get_ccnetuser(username=None, userid=None):
|
||||||
# Get emailuser from db
|
# Get emailuser from db
|
||||||
if username:
|
if username:
|
||||||
emailuser = ccnet_rpc.get_emailuser(username)
|
emailuser = ccnet_threaded_rpc.get_emailuser(username)
|
||||||
if userid:
|
if userid:
|
||||||
emailuser = ccnet_rpc.get_emailuser_by_id(userid)
|
emailuser = ccnet_threaded_rpc.get_emailuser_by_id(userid)
|
||||||
if not emailuser:
|
if not emailuser:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# Check whether is business account
|
# Check whether is business account
|
||||||
org = ccnet_rpc.get_org_by_user(emailuser.email)
|
org = ccnet_threaded_rpc.get_org_by_user(emailuser.email)
|
||||||
emailuser.org = org
|
emailuser.org = org
|
||||||
|
|
||||||
# And convert to ccnetuser
|
# And convert to ccnetuser
|
||||||
@@ -317,7 +318,7 @@ def get_ccnetuser(username=None, userid=None):
|
|||||||
|
|
||||||
def get_groups():
|
def get_groups():
|
||||||
"""Get group object list. """
|
"""Get group object list. """
|
||||||
group_ids = ccnet_rpc.list_groups()
|
group_ids = ccnet_threaded_rpc.list_groups()
|
||||||
if not group_ids:
|
if not group_ids:
|
||||||
return []
|
return []
|
||||||
groups = []
|
groups = []
|
||||||
@@ -325,13 +326,13 @@ def get_groups():
|
|||||||
# too handle the ending '\n'
|
# too handle the ending '\n'
|
||||||
if group_id == '':
|
if group_id == '':
|
||||||
continue
|
continue
|
||||||
group = ccnet_rpc.get_group(group_id)
|
group = ccnet_threaded_rpc.get_group(group_id)
|
||||||
groups.append(group)
|
groups.append(group)
|
||||||
return groups
|
return groups
|
||||||
|
|
||||||
|
|
||||||
def get_group(group_id):
|
def get_group(group_id):
|
||||||
group = ccnet_rpc.get_group(group_id)
|
group = ccnet_threaded_rpc.get_group(group_id)
|
||||||
if not group:
|
if not group:
|
||||||
return None
|
return None
|
||||||
group.members = group.props.members.split(" ")
|
group.members = group.props.members.split(" ")
|
||||||
@@ -385,7 +386,7 @@ def get_branches(repo_id):
|
|||||||
def get_binding_peerids(email):
|
def get_binding_peerids(email):
|
||||||
"""Get peer ids of a given email"""
|
"""Get peer ids of a given email"""
|
||||||
try:
|
try:
|
||||||
peer_ids = ccnet_rpc.get_binding_peerids(email)
|
peer_ids = ccnet_threaded_rpc.get_binding_peerids(email)
|
||||||
except SearpcError:
|
except SearpcError:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -422,4 +423,4 @@ def check_group_staff(group_id_int, user_or_username):
|
|||||||
if isinstance(user_or_username, CcnetUser):
|
if isinstance(user_or_username, CcnetUser):
|
||||||
user_or_username = user_or_username.username
|
user_or_username = user_or_username.username
|
||||||
|
|
||||||
return ccnet_rpc.check_group_staff(group_id_int, user_or_username)
|
return ccnet_threaded_rpc.check_group_staff(group_id_int, user_or_username)
|
||||||
|
32
views.py
32
views.py
@@ -18,7 +18,7 @@ from auth.decorators import login_required
|
|||||||
from auth.forms import AuthenticationForm, PasswordResetForm, SetPasswordForm, \
|
from auth.forms import AuthenticationForm, PasswordResetForm, SetPasswordForm, \
|
||||||
PasswordChangeForm
|
PasswordChangeForm
|
||||||
from auth.tokens import default_token_generator
|
from auth.tokens import default_token_generator
|
||||||
from seaserv import ccnet_rpc, get_groups, get_users, get_repos, \
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_users, get_repos, \
|
||||||
get_repo, get_commits, get_branches, \
|
get_repo, get_commits, get_branches, \
|
||||||
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
|
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
|
||||||
get_group_repoids, check_group_staff
|
get_group_repoids, check_group_staff
|
||||||
@@ -69,7 +69,7 @@ def validate_emailuser(emailuser):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
user = ccnet_rpc.get_emailuser(emailuser)
|
user = ccnet_threaded_rpc.get_emailuser(emailuser)
|
||||||
except:
|
except:
|
||||||
user = None
|
user = None
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ def check_shared_repo(request, repo_id):
|
|||||||
if repo.props.id == repo_id:
|
if repo.props.id == repo_id:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
groups = ccnet_rpc.get_groups(request.user.username)
|
groups = ccnet_threaded_rpc.get_groups(request.user.username)
|
||||||
# for every group that user joined...
|
# for every group that user joined...
|
||||||
for group in groups:
|
for group in groups:
|
||||||
# ...get repo ids in that group, and check whether repo ids contains that repo id
|
# ...get repo ids in that group, and check whether repo ids contains that repo id
|
||||||
@@ -545,7 +545,7 @@ def myhome(request):
|
|||||||
contacts = Contact.objects.filter(user_email=email)
|
contacts = Contact.objects.filter(user_email=email)
|
||||||
|
|
||||||
# my groups
|
# my groups
|
||||||
groups = ccnet_rpc.get_groups(email)
|
groups = ccnet_threaded_rpc.get_groups(email)
|
||||||
groups_manage = []
|
groups_manage = []
|
||||||
groups_join = []
|
groups_join = []
|
||||||
for group in groups:
|
for group in groups:
|
||||||
@@ -815,13 +815,13 @@ def sys_useradmin(request):
|
|||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
users = ccnet_rpc.get_emailusers(-1,-1)
|
users = ccnet_threaded_rpc.get_emailusers(-1,-1)
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
if user.props.id == request.user.id:
|
if user.props.id == request.user.id:
|
||||||
user.is_self = True
|
user.is_self = True
|
||||||
# TODO: may add new is_org_user rpc
|
# TODO: may add new is_org_user rpc
|
||||||
user.is_org_user = True if ccnet_rpc.get_org_by_user(user.email) else False
|
user.is_org_user = True if ccnet_threaded_rpc.get_org_by_user(user.email) else False
|
||||||
|
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
'sys_useradmin.html', {
|
'sys_useradmin.html', {
|
||||||
@@ -834,7 +834,7 @@ def org_useradmin(request):
|
|||||||
if not request.user.org.is_staff:
|
if not request.user.org.is_staff:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
users = ccnet_rpc.get_org_emailusers(request.user.org.url_prefix,
|
users = ccnet_threaded_rpc.get_org_emailusers(request.user.org.url_prefix,
|
||||||
0, sys.maxint)
|
0, sys.maxint)
|
||||||
|
|
||||||
for user in users:
|
for user in users:
|
||||||
@@ -864,7 +864,7 @@ def user_info(request, email):
|
|||||||
quota_usage = seafserv_threaded_rpc.get_user_quota_usage(email)
|
quota_usage = seafserv_threaded_rpc.get_user_quota_usage(email)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
peers = ccnet_rpc.get_peers_by_email(email)
|
peers = ccnet_threaded_rpc.get_peers_by_email(email)
|
||||||
for peer in peers:
|
for peer in peers:
|
||||||
if not peer:
|
if not peer:
|
||||||
continue
|
continue
|
||||||
@@ -919,7 +919,7 @@ def user_remove(request, user_id):
|
|||||||
|
|
||||||
ccnetuser = get_ccnetuser(userid=int(user_id))
|
ccnetuser = get_ccnetuser(userid=int(user_id))
|
||||||
if ccnetuser.org:
|
if ccnetuser.org:
|
||||||
ccnet_rpc.remove_org_user(ccnetuser.org.org_id, ccnetuser.username)
|
ccnet_threaded_rpc.remove_org_user(ccnetuser.org.org_id, ccnetuser.username)
|
||||||
ccnetuser.delete()
|
ccnetuser.delete()
|
||||||
|
|
||||||
if request.user.is_staff:
|
if request.user.is_staff:
|
||||||
@@ -983,7 +983,7 @@ def user_add(request):
|
|||||||
|
|
||||||
if request.user.org:
|
if request.user.org:
|
||||||
org_id = request.user.org.org_id
|
org_id = request.user.org.org_id
|
||||||
ccnet_rpc.add_org_user(org_id, email, 0)
|
ccnet_threaded_rpc.add_org_user(org_id, email, 0)
|
||||||
if hasattr(settings, 'EMAIL_HOST'):
|
if hasattr(settings, 'EMAIL_HOST'):
|
||||||
send_user_add_mail(request, email, password)
|
send_user_add_mail(request, email, password)
|
||||||
|
|
||||||
@@ -1020,7 +1020,7 @@ def sys_group_admin(request):
|
|||||||
current_page = 1
|
current_page = 1
|
||||||
per_page = 25
|
per_page = 25
|
||||||
|
|
||||||
groups_plus_one = ccnet_rpc.get_all_groups(per_page * (current_page -1),
|
groups_plus_one = ccnet_threaded_rpc.get_all_groups(per_page * (current_page -1),
|
||||||
per_page +1)
|
per_page +1)
|
||||||
|
|
||||||
groups = groups_plus_one[:per_page]
|
groups = groups_plus_one[:per_page]
|
||||||
@@ -1043,7 +1043,7 @@ def sys_org_admin(request):
|
|||||||
if not request.user.is_staff:
|
if not request.user.is_staff:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
orgs = ccnet_rpc.get_all_orgs(0, sys.maxint)
|
orgs = ccnet_threaded_rpc.get_all_orgs(0, sys.maxint)
|
||||||
|
|
||||||
return render_to_response('sys_org_admin.html', {
|
return render_to_response('sys_org_admin.html', {
|
||||||
'orgs': orgs,
|
'orgs': orgs,
|
||||||
@@ -1061,7 +1061,7 @@ def org_group_admin(request):
|
|||||||
current_page = 1
|
current_page = 1
|
||||||
per_page = 25
|
per_page = 25
|
||||||
|
|
||||||
groups_plus_one = ccnet_rpc.get_org_groups (request.user.org.org_id,
|
groups_plus_one = ccnet_threaded_rpc.get_org_groups (request.user.org.org_id,
|
||||||
per_page * (current_page -1),
|
per_page * (current_page -1),
|
||||||
per_page +1)
|
per_page +1)
|
||||||
|
|
||||||
@@ -1095,7 +1095,7 @@ def org_remove(request, org_id):
|
|||||||
|
|
||||||
# TODO: Remove repos in org's groups
|
# TODO: Remove repos in org's groups
|
||||||
|
|
||||||
ccnet_rpc.remove_org(org_id_int)
|
ccnet_threaded_rpc.remove_org(org_id_int)
|
||||||
|
|
||||||
return HttpResponseRedirect(reverse('sys_org_admin'))
|
return HttpResponseRedirect(reverse('sys_org_admin'))
|
||||||
|
|
||||||
@@ -1106,11 +1106,11 @@ def org_info(request):
|
|||||||
|
|
||||||
org = request.user.org
|
org = request.user.org
|
||||||
|
|
||||||
org_members = ccnet_rpc.get_org_emailusers(org.url_prefix, 0, sys.maxint)
|
org_members = ccnet_threaded_rpc.get_org_emailusers(org.url_prefix, 0, sys.maxint)
|
||||||
for member in org_members:
|
for member in org_members:
|
||||||
member.short_username = member.email.split('@')[0]
|
member.short_username = member.email.split('@')[0]
|
||||||
|
|
||||||
groups = ccnet_rpc.get_org_groups(org.org_id, 0, sys.maxint)
|
groups = ccnet_threaded_rpc.get_org_groups(org.org_id, 0, sys.maxint)
|
||||||
|
|
||||||
return render_to_response('org_info.html', {
|
return render_to_response('org_info.html', {
|
||||||
'org': org,
|
'org': org,
|
||||||
|
Reference in New Issue
Block a user