mirror of
https://github.com/haiwen/seahub.git
synced 2025-06-25 14:43:15 +00:00
129 lines
4.1 KiB
Python
129 lines
4.1 KiB
Python
# encoding: utf-8
|
|
import simplejson as json
|
|
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 import messages
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.utils.translation import ugettext as _
|
|
|
|
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_binding_peerids
|
|
from pysearpc import SearpcError
|
|
|
|
from forms import ProfileForm
|
|
from models import Profile
|
|
from utils import refresh_cache
|
|
from seahub.utils import render_error
|
|
from seahub.base.accounts import User
|
|
from seahub.contacts.models import Contact
|
|
|
|
|
|
@login_required
|
|
def edit_profile(request):
|
|
"""
|
|
Show and edit user profile.
|
|
"""
|
|
if request.method == 'POST':
|
|
form = ProfileForm(request.POST)
|
|
if form.is_valid():
|
|
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()
|
|
messages.success(request, _(u'Successfully edited profile.'))
|
|
# refresh nickname cache
|
|
refresh_cache(request.user.username)
|
|
|
|
return HttpResponseRedirect(reverse('edit_profile'))
|
|
else:
|
|
messages.error(request, _(u'Failed to edit profile'))
|
|
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', {
|
|
'form': form,
|
|
}, context_instance=RequestContext(request))
|
|
|
|
@login_required
|
|
def user_profile(request, user):
|
|
user_nickname = ''
|
|
user_intro = ''
|
|
|
|
try:
|
|
user_check = User.objects.get(email=user)
|
|
except User.DoesNotExist:
|
|
user_check = None
|
|
|
|
if user_check:
|
|
profile = Profile.objects.filter(user=user)
|
|
if profile:
|
|
profile = profile[0]
|
|
user_nickname = profile.nickname
|
|
user_intro = profile.intro
|
|
else:
|
|
nickname = user
|
|
user_intro = _(u'Has not accepted invitation yet')
|
|
|
|
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
|
|
print new_user
|
|
return render_to_response('profile/user_profile.html', {
|
|
'email': user,
|
|
'nickname': user_nickname,
|
|
'intro': user_intro,
|
|
'new_user': new_user,
|
|
}, context_instance=RequestContext(request))
|
|
|
|
@login_required
|
|
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:
|
|
user_check = User.objects.get(email=user)
|
|
except User.DoesNotExist:
|
|
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['user_intro'] = _(u'Has not accepted invitation yet')
|
|
|
|
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)
|