2012-06-20 11:14:18 +00:00
|
|
|
# encoding: utf-8
|
2012-06-23 08:12:33 +00:00
|
|
|
import simplejson as json
|
2012-06-05 11:38:28 +00:00
|
|
|
from django.core.urlresolvers import reverse
|
2011-04-30 05:18:32 +00:00
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
|
|
from django.shortcuts import render_to_response, get_object_or_404
|
|
|
|
from django.template import Context, RequestContext
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
|
2012-06-25 12:42:19 +00:00
|
|
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_binding_peerids
|
2012-05-25 11:42:19 +00:00
|
|
|
from pysearpc import SearpcError
|
|
|
|
|
2012-06-21 12:53:13 +00:00
|
|
|
from forms import ProfileForm
|
2012-06-20 06:18:23 +00:00
|
|
|
from models import Profile
|
2012-07-30 12:44:32 +00:00
|
|
|
from utils import render_error
|
2012-06-21 12:53:13 +00:00
|
|
|
from seahub.contacts.models import Contact
|
2011-04-30 05:18:32 +00:00
|
|
|
|
2012-06-28 09:24:35 +00:00
|
|
|
#@login_required
|
|
|
|
#def list_userids(request):
|
|
|
|
# peer_list = []
|
|
|
|
# try:
|
|
|
|
# peers = ccnet_threaded_rpc.get_peers_by_email(request.user.username)
|
|
|
|
# except:
|
|
|
|
# peers = None
|
|
|
|
#
|
|
|
|
# return render_to_response('profile/user_ids.html',
|
|
|
|
# {'peers': peers},
|
|
|
|
# context_instance=RequestContext(request))
|
2012-05-25 11:42:19 +00:00
|
|
|
|
2012-07-05 03:52:12 +00:00
|
|
|
#def logout_relay(request):
|
|
|
|
# peer_id = request.GET.get('peer_id', '')
|
|
|
|
#
|
|
|
|
# try:
|
|
|
|
# ccnet_threaded_rpc.remove_one_binding(request.user.username, peer_id)
|
|
|
|
# except SearpcError, e:
|
2012-07-30 12:44:32 +00:00
|
|
|
# return render_error(request, e.msg)
|
2012-07-05 03:52:12 +00:00
|
|
|
#
|
|
|
|
# return HttpResponseRedirect(reverse('list_userids'))
|
2012-06-20 06:18:23 +00:00
|
|
|
|
2012-06-21 12:53:13 +00:00
|
|
|
@login_required
|
2012-06-20 06:18:23 +00:00
|
|
|
def edit_profile(request):
|
2012-06-22 08:07:17 +00:00
|
|
|
modified = False
|
2012-06-20 06:18:23 +00:00
|
|
|
if request.method == 'POST':
|
2012-06-21 12:53:13 +00:00
|
|
|
form = ProfileForm(request.POST)
|
|
|
|
if form.is_valid():
|
2012-06-22 08:07:17 +00:00
|
|
|
modified = True
|
2012-06-21 12:53:13 +00:00
|
|
|
nickname = form.cleaned_data['nickname']
|
|
|
|
intro = form.cleaned_data['intro']
|
|
|
|
try:
|
|
|
|
profile = Profile.objects.get(user=request.user.username)
|
|
|
|
except Profile.DoesNotExist:
|
|
|
|
profile = Profile()
|
|
|
|
|
|
|
|
profile.user = request.user.username
|
|
|
|
profile.nickname = nickname
|
|
|
|
profile.intro = intro
|
2012-06-20 06:18:23 +00:00
|
|
|
profile.save()
|
2012-06-21 12:53:13 +00:00
|
|
|
else:
|
|
|
|
try:
|
|
|
|
profile = Profile.objects.get(user=request.user.username)
|
|
|
|
form = ProfileForm({
|
|
|
|
'nickname': profile.nickname,
|
|
|
|
'intro': profile.intro,
|
|
|
|
})
|
|
|
|
except Profile.DoesNotExist:
|
|
|
|
form = ProfileForm()
|
2012-06-20 06:18:23 +00:00
|
|
|
|
|
|
|
return render_to_response('profile/set_profile.html', {
|
2012-06-21 12:53:13 +00:00
|
|
|
'form': form,
|
2012-06-22 07:51:32 +00:00
|
|
|
'modified': modified,
|
2012-06-21 12:53:13 +00:00
|
|
|
}, context_instance=RequestContext(request))
|
2012-06-20 11:14:18 +00:00
|
|
|
|
2012-06-21 12:53:13 +00:00
|
|
|
@login_required
|
|
|
|
def user_profile(request, user):
|
2012-06-20 11:14:18 +00:00
|
|
|
user_nickname = ''
|
|
|
|
user_intro = ''
|
|
|
|
err_msg = ''
|
2012-06-21 12:53:13 +00:00
|
|
|
|
|
|
|
try:
|
2012-06-25 12:42:19 +00:00
|
|
|
user_check = ccnet_threaded_rpc.get_emailuser(user)
|
2012-06-21 12:53:13 +00:00
|
|
|
except:
|
|
|
|
user_check = None
|
2012-06-20 11:14:18 +00:00
|
|
|
|
2012-06-21 12:53:13 +00:00
|
|
|
if user_check:
|
|
|
|
profile = Profile.objects.filter(user=user)
|
|
|
|
if profile:
|
|
|
|
profile = profile[0]
|
|
|
|
user_nickname = profile.nickname
|
|
|
|
user_intro = profile.intro
|
2012-06-20 11:14:18 +00:00
|
|
|
else:
|
|
|
|
err_msg = '该用户不存在'
|
2012-06-21 12:53:13 +00:00
|
|
|
|
|
|
|
if user == request.user.username or \
|
|
|
|
Contact.objects.filter(user_email=request.user.username,
|
|
|
|
contact_email=user).count() > 0:
|
|
|
|
new_user = False
|
|
|
|
else:
|
|
|
|
new_user = True
|
|
|
|
|
2012-06-20 11:14:18 +00:00
|
|
|
return render_to_response('profile/user_profile.html', {
|
|
|
|
'email': user,
|
2012-06-22 07:51:32 +00:00
|
|
|
'nickname': user_nickname,
|
|
|
|
'intro': user_intro,
|
2012-06-21 12:53:13 +00:00
|
|
|
'new_user': new_user,
|
2012-06-22 07:51:32 +00:00
|
|
|
'err_msg': err_msg,
|
2012-06-20 11:14:18 +00:00
|
|
|
},
|
|
|
|
context_instance=RequestContext(request))
|
2012-06-23 08:12:33 +00:00
|
|
|
|
|
|
|
def get_user_profile(request, user):
|
|
|
|
data = {
|
|
|
|
'email': user,
|
|
|
|
'user_nickname': '',
|
|
|
|
'user_intro': '',
|
|
|
|
'err_msg': '',
|
|
|
|
'new_user': ''
|
|
|
|
}
|
|
|
|
content_type = 'application/json; charset=utf-8'
|
|
|
|
|
|
|
|
try:
|
2012-06-25 13:12:56 +00:00
|
|
|
user_check = ccnet_threaded_rpc.get_emailuser(user)
|
2012-06-23 08:12:33 +00:00
|
|
|
except:
|
|
|
|
user_check = None
|
|
|
|
|
|
|
|
if user_check:
|
|
|
|
profile = Profile.objects.filter(user=user)
|
|
|
|
if profile:
|
|
|
|
profile = profile[0]
|
|
|
|
data['user_nickname'] = profile.nickname
|
|
|
|
data['user_intro'] = profile.intro
|
|
|
|
else:
|
|
|
|
data['err_msg'] = '该用户不存在'
|
|
|
|
|
|
|
|
if user == request.user.username or \
|
|
|
|
Contact.objects.filter(user_email=request.user.username,
|
|
|
|
contact_email=user).count() > 0:
|
|
|
|
data['new_user'] = False
|
|
|
|
else:
|
|
|
|
data['new_user'] = True
|
|
|
|
|
|
|
|
return HttpResponse(json.dumps(data), content_type=content_type)
|