1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-10-21 10:51:17 +00:00

Use email-user and binding in ccnet instead of userprofile in seahub

* Remove UserProfile from profile/models.
* Disable ccnet user id binding in profile page
This commit is contained in:
xiez
2012-04-01 21:55:33 +08:00
parent fc11ef20cb
commit 50fe2bb91a
12 changed files with 104 additions and 95 deletions

View File

@@ -1,4 +1,4 @@
from django.contrib import admin
from profile.models import UserProfile
#from profile.models import UserProfile
admin.site.register(UserProfile)
#admin.site.register(UserProfile)

View File

@@ -2,9 +2,9 @@ from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
ccnet_user_id = models.CharField(max_length=40, blank=True)
#class UserProfile(models.Model):
# user = models.ForeignKey(User, unique=True)
# ccnet_user_id = models.CharField(max_length=40, blank=True)
class UserCcnetConf(models.Model):
user = models.ForeignKey(User, unique=True)

View File

@@ -3,7 +3,6 @@
{% block left_panel %}
<ul>
<li><a href="{% url profile_setting %}">绑定个人 ID</a></li>
<li><a href="{{ SITE_ROOT }}accounts/password/change/">修改网站帐号密码</a></li>
</ul>
{% endblock %}
@@ -13,14 +12,12 @@
<h2>当前设置</h2>
<ul>
{% if profile.ccnet_user_id %}
<li><span class="bold">个人 ID</span>{{ profile.ccnet_user_id }}</li>
{% else %}
<li><span class="bold">个人 ID</span>您还没绑定。<a href="{% url profile_setting %}">现在绑定</a></li>
{% if user_id %}
<li><span class="bold">个人 ID</span>{{ user_id }}</li>
{% endif %}
{% if profile_timestamp %}
<li><span class="bold">帐号文件:</span>您的加密后的帐号文件上传于{{ profile_timestamp }} <a href="{{ SITE_ROOT }}profile/download/?user_id={{profile.ccnet_user_id}}">点此下载</a></li>
<li><span class="bold">帐号文件:</span>您的加密后的帐号文件上传于{{ profile_timestamp }} <a href="{{ SITE_ROOT }}profile/download/?user_id={{ user_id }}">点此下载</a></li>
{% else %}
<li><span class="bold">帐号文件:</span>您的帐号文件还未上传,请在本地 seafile 界面 "帐号" 标签下上传</li>
{% endif %}

View File

@@ -3,7 +3,7 @@ from django.conf.urls.defaults import *
urlpatterns = patterns('profile.views',
url(r'^$', 'show_profile'),
url(r'^ccnet/$', 'get_ccnet_profile'),
url(r'^edit/$', 'set_profile', name="profile_setting"),
# url(r'^edit/$', 'set_profile', name="profile_setting"),
url(r'^edit/ccnet/$', 'set_ccnet_profile', name="ccnet_profile_setting"),
url(r'^download/$', 'download_profile', name="profile_download"),
)

View File

@@ -8,16 +8,13 @@ from django.core.urlresolvers import reverse
import datetime
from forms import SetUserProfileForm
from models import UserProfile, UserCcnetConf
from models import UserCcnetConf
from seaserv import ccnet_rpc, translate_time_usec
@login_required
def show_profile(request):
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
profile.save()
user_id = ccnet_rpc.get_binding_userid(request.user.username)
try:
profile_timestamp = ccnet_rpc.get_user_profile_timestamp(profile.ccnet_user_id)
@@ -25,51 +22,42 @@ def show_profile(request):
except:
profile_timestamp = None
return render_to_response('profile/profile.html',
{ 'profile': profile,
return render_to_response('profile/profile.html', {
'user_id': user_id,
'profile_timestamp': profile_timestamp},
context_instance=RequestContext(request))
@login_required
def set_profile(request):
error_msg = None
origin_id = None
if request.method == 'POST':
ccnet_user_id = request.POST.get('ccnet_user_id', '').strip()
origin_id = ccnet_user_id
if not ccnet_user_id:
error_msg = "You must specify Key ID"
elif len(ccnet_user_id) != 40:
error_msg = "Key ID must be of length 40"
elif UserProfile.objects.filter(ccnet_user_id=ccnet_user_id).count() != 0:
error_msg = "Key ID has been used"
else:
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
profile.save()
try:
ccnet_rpc.add_client(ccnet_user_id)
except Exception, e:
error_msg = "Ccnet Daemon is not available, try again later"
else:
profile.ccnet_user_id = ccnet_user_id
profile.save()
return HttpResponseRedirect(reverse(show_profile))
else:
try:
profile = request.user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile(user=request.user)
profile.save()
origin_id = profile.ccnet_user_id
return render_to_response('profile/set_profile.html',
{ 'error_msg': error_msg,
'origin_id': origin_id },
context_instance=RequestContext(request))
#@login_required
#def set_profile(request):
# error_msg = None
# origin_id = None
# if request.method == 'POST':
# ccnet_user_id = request.POST.get('ccnet_user_id', '').strip()
# origin_id = ccnet_user_id
# if not ccnet_user_id:
# error_msg = "You must specify Key ID"
# elif len(ccnet_user_id) != 40:
# error_msg = "Key ID must be of length 40"
# elif ccnet_rpc.get_binding_email(ccnet_user_id) != None:
# email = ccnet_rpc.get_binding_email(ccnet_user_id)
# # user id has been binded by an email
# error_msg = ("Key ID has been used by %s" % email)
# else:
# try:
# ccnet_rpc.add_client(ccnet_user_id)
# except Exception, e:
# error_msg = "Ccnet Daemon is not available, try again later"
# else:
# ccnet_rpc.add_binding(request.user.username, ccnet_user_id)
# return HttpResponseRedirect(reverse(show_profile))
# else:
# origin_id = ccnet_rpc.get_binding_userid(request.user.username)
#
# return render_to_response('profile/set_profile.html',
# { 'error_msg': error_msg,
# 'origin_id': origin_id },
# context_instance=RequestContext(request))
@login_required
@@ -83,12 +71,8 @@ def get_ccnet_profile(request):
@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
ccnet_id = request.user.user_id
if request.method == 'POST':
ccnet_profile = request.POST.get('ccnet_profile', None)
try:
@@ -107,7 +91,7 @@ def set_ccnet_profile(request):
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))