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.loader import get_template
|
|
|
|
from django.template import Context, RequestContext
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
from forms import SetUserProfileForm
|
2011-10-18 07:41:48 +00:00
|
|
|
from models import UserProfile, UserCcnetConf
|
2011-05-08 07:19:58 +00:00
|
|
|
from seaserv import ccnet_rpc
|
2011-04-30 05:18:32 +00:00
|
|
|
|
|
|
|
@login_required
|
|
|
|
def show_profile(request):
|
2011-05-08 07:19:58 +00:00
|
|
|
try:
|
|
|
|
profile = request.user.get_profile()
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
profile = UserProfile(user=request.user)
|
|
|
|
profile.save()
|
2011-04-30 05:18:32 +00:00
|
|
|
return render_to_response('profile/profile.html',
|
2012-01-31 16:07:10 +00:00
|
|
|
{ 'profile': profile, },
|
2011-04-30 05:18:32 +00:00
|
|
|
context_instance=RequestContext(request))
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
def set_profile(request):
|
2011-05-08 07:19:58 +00:00
|
|
|
error_msg = None
|
|
|
|
origin_id = None
|
2011-04-30 05:18:32 +00:00
|
|
|
if request.method == 'POST':
|
2012-03-09 02:31:35 +00:00
|
|
|
ccnet_user_id = request.POST.get('ccnet_user_id', '').strip()
|
2011-05-08 07:19:58 +00:00
|
|
|
origin_id = ccnet_user_id
|
|
|
|
if not ccnet_user_id:
|
2012-03-09 02:31:35 +00:00
|
|
|
error_msg = "You must specify Key ID"
|
2011-05-08 07:19:58 +00:00
|
|
|
elif len(ccnet_user_id) != 40:
|
2012-03-09 02:31:35 +00:00
|
|
|
error_msg = "Key ID must be of length 40"
|
2011-05-08 07:19:58 +00:00
|
|
|
else:
|
2011-04-30 05:18:32 +00:00
|
|
|
try:
|
|
|
|
profile = request.user.get_profile()
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
profile = UserProfile(user=request.user)
|
2011-05-08 07:19:58 +00:00
|
|
|
profile.save()
|
|
|
|
try:
|
|
|
|
ccnet_rpc.add_client(ccnet_user_id)
|
2012-03-09 02:31:35 +00:00
|
|
|
except Exception, e:
|
2011-05-08 07:19:58 +00:00
|
|
|
error_msg = "Ccnet Deamon is not available, try again later"
|
|
|
|
else:
|
|
|
|
profile.ccnet_user_id = ccnet_user_id
|
|
|
|
profile.save()
|
|
|
|
return HttpResponseRedirect(reverse(show_profile))
|
2011-04-30 05:18:32 +00:00
|
|
|
else:
|
|
|
|
try:
|
|
|
|
profile = request.user.get_profile()
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
profile = UserProfile(user=request.user)
|
2011-05-08 07:19:58 +00:00
|
|
|
profile.save()
|
|
|
|
origin_id = profile.ccnet_user_id
|
2011-04-30 05:18:32 +00:00
|
|
|
|
|
|
|
return render_to_response('profile/set_profile.html',
|
2011-05-08 07:19:58 +00:00
|
|
|
{ 'error_msg': error_msg,
|
|
|
|
'origin_id': origin_id },
|
2011-04-30 05:18:32 +00:00
|
|
|
context_instance=RequestContext(request))
|
2011-10-18 07:41:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
def get_ccnet_profile(request):
|
|
|
|
try:
|
|
|
|
ccnet_conf = UserCcnetConf.objects.get(user=request.user)
|
|
|
|
return HttpResponse(ccnet_conf.ccnet_profile)
|
|
|
|
except UserCcnetConf.DoesNotExist:
|
|
|
|
return HttpResponse("")
|
|
|
|
|
|
|
|
|
|
|
|
@login_required
|
|
|
|
def set_ccnet_profile(request):
|
|
|
|
try:
|
|
|
|
profile = request.user.get_profile()
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
return HttpResponse("Error: You have not set seafile id yet.")
|
|
|
|
ccnet_id = profile.ccnet_user_id
|
|
|
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
ccnet_profile = request.POST.get('ccnet_profile', None)
|
|
|
|
try:
|
|
|
|
ccnet_conf = UserCcnetConf.objects.get(ccnet_user_id=ccnet_id)
|
|
|
|
ccnet_conf.ccnet_profile = ccnet_profile
|
|
|
|
ccnet_conf.save()
|
|
|
|
except UserCcnetConf.DoesNotExist:
|
|
|
|
ccnet_conf = UserCcnetConf(user=request.user,
|
|
|
|
ccnet_user_id=ccnet_id,
|
|
|
|
ccnet_profile=ccnet_profile)
|
|
|
|
ccnet_conf.save()
|
|
|
|
return HttpResponse("ok")
|
|
|
|
else:
|
|
|
|
try:
|
|
|
|
ccnet_conf = UserCcnetConf.objects.get(ccnet_user_id=ccnet_id)
|
|
|
|
ccnet_profile = ccnet_conf.ccnet_profile
|
|
|
|
except UserCcnetConf.DoesNotExist:
|
|
|
|
ccnet_profile = ""
|
|
|
|
|
|
|
|
return render_to_response('profile/set_ccnet_conf.html',
|
|
|
|
{ 'ccnet_profile': ccnet_profile },
|
|
|
|
context_instance=RequestContext(request))
|