1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-06-28 07:57:50 +00:00
seahub/profile/views.py

140 lines
4.4 KiB
Python
Raw Normal View History

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
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
from pysearpc import SearpcError
2012-06-21 12:53:13 +00:00
from forms import ProfileForm
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
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-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-21 12:53:13 +00:00
@login_required
def edit_profile(request):
2012-06-22 08:07:17 +00:00
modified = False
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
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()
return render_to_response('profile/set_profile.html', {
2012-06-21 12:53:13 +00:00
'form': form,
'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,
'nickname': user_nickname,
'intro': user_intro,
2012-06-21 12:53:13 +00:00
'new_user': new_user,
'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)