55from django .conf import settings
66from django .http import HttpResponse , HttpResponseRedirect
77from django .contrib .auth import get_user_model
8- from .models import oauthuser
8+ from .models import OAuthUser
99from django .contrib .auth import login
10+ from django .shortcuts import get_object_or_404
11+ from django .views .generic import FormView , RedirectView
12+ from oauth .forms import RequireEmailForm
13+ from django .core .urlresolvers import reverse
1014
1115
1216def authorize (request ):
@@ -25,16 +29,81 @@ def authorize(request):
2529 author = None
2630 if user :
2731 email = user .email
32+ email = None
2833 if email :
2934 author = get_user_model ().objects .get (email = email )
3035 if not author :
31- author = get_user_model ().objects .create_user (username = user [ "name" ] , email = email )
36+ author = get_user_model ().objects .create_user (username = user . nikename , email = email )
3237 user .author = author
3338 user .save ()
3439 login (request , author )
3540 return HttpResponseRedirect ('/' )
3641 if not email :
37- author = get_user_model ().objects .create_user (username = user ["name" ], email = email )
42+ author = get_user_model ().objects .create_user (username = user .nikename )
43+ user .author = author
44+ user .save ()
45+ url = reverse ('oauth:require_email' , kwargs =
46+ {
47+ 'oauthid' : user .id
48+ })
49+ print (url )
50+ return HttpResponseRedirect (url )
51+
52+
53+ """
54+ def require_email(request, oauthid):
55+ oauthuser = get_object_or_404(OAuthUser, pk=oauthid)
56+ if oauthuser.email:
57+ return HttpResponseRedirect('/')
58+
59+ """
60+
61+
62+ class RequireEmailView (FormView ):
63+ form_class = RequireEmailForm
64+ template_name = 'oauth/require_email.html'
65+
66+ def get (self , request , * args , ** kwargs ):
67+ oauthid = self .kwargs ['oauthid' ]
68+ oauthuser = get_object_or_404 (OAuthUser , pk = oauthid )
69+ if oauthuser .email :
70+ pass
71+ # return HttpResponseRedirect('/')
72+
73+ return super (RequireEmailView , self ).get (request , * args , ** kwargs )
74+
75+ def get_initial (self ):
76+ oauthid = self .kwargs ['oauthid' ]
77+ return {
78+ 'email' : '' ,
79+ 'oauthid' : oauthid
80+ }
81+
82+ def get_context_data (self , ** kwargs ):
83+ oauthid = self .kwargs ['oauthid' ]
84+ oauthuser = get_object_or_404 (OAuthUser , pk = oauthid )
85+ if oauthuser .picture :
86+ kwargs ['picture' ] = oauthuser .picture
87+ return super (RequireEmailView , self ).get_context_data (** kwargs )
88+
89+ def form_valid (self , form ):
90+ email = form .cleaned_data ['email' ]
91+ oauthid = form .cleaned_data ['oauthid' ]
92+ oauthuser = get_object_or_404 (OAuthUser , pk = oauthid )
93+ from DjangoBlog .utils import send_email
94+ url = '123'
95+ content = """
96+ <p>请点击下面链接绑定您的邮箱</p>
97+
98+ <a href="{url}" rel="bookmark">{url}</a>
99+
100+ 再次感谢您!
101+ <br />
102+ 如果上面链接无法打开,请将此链接复制至浏览器。
103+ {url}
104+ """ .format (url = url )
105+ send_email ('绑定您的电子邮箱' , content , [email , ])
106+ return HttpResponseRedirect ('/' )
38107
39108
40109"""
0 commit comments