def authenticate(self, fb_user=None): try: profile = UserProfile.objects.get(fb_username=fb_user.username) profile.user.backend = \ 'ohibokapatterns.common.utils.FacebookBackend' return profile.user except UserProfile.DoesNotExist: # Create a new user. Note that we can set password # to anything, because it won't be checked; the password # from settings.py will. username = fb_user.username users = User.objects.filter(username__startswith=username + '-').order_by('id').reverse() if not users: users = User.objects.filter(username=username).order_by('id').reverse() if users: username += '-1' else: users = users[0] username += '-' + str(int(users.url.split('-')[1]) + 1) user = User(username=username, password=hashlib.sha224(username + \ str(date.today())).hexdigest()) user.is_staff = False user.is_superuser = False user.save() userprofile = UserProfile(fb_username=fb_user.username, fb_name=fb_user.name, user=user) userprofile.save() user.backend = 'ohibokapatterns.common.utils.FacebookBackend' return user
def save(self, user): user.first_name = self.cleaned_data["first_name"] user.last_name = self.cleaned_data["last_name"] # this will only be done one time, so we need to create a user profile profile = UserProfile() profile.user = user profile.occupation = self.cleaned_data["occupation"] profile.reason_of_visit = self.cleaned_data["purpose_of_visit"] profile.country_of_residence = self.cleaned_data["country_of_residence"] profile.save() user.save()
def post(self, request): register_form = RegisterForm(request.POST) if register_form.is_valid(): user_name = request.POST.get("email", "") if UserProfile.objects.filter(email=user_name): return render(request, "users/register.html", { "register_form": register_form, "msg": "该账户已被注册" }) pass_word = request.POST.get("password", "") user_profile = UserProfile() user_profile.username = user_name user_profile.email = user_name user_profile.is_active = False user_profile.password = make_password(pass_word) user_profile.save() # send_register_email(user_name, 'register') send_register_email(email=user_name, send_type=0) return render(request, "users/login.html") # return redirect('/') else: return render(request, "users/register.html", {"register_form": register_form})
'verify_code': code_encrypt(random_str(4)) } url = url_covenrt(request=request, dict=mail_activate_info, path='users/email_activate') password = make_password(register_password, None, 'pbkdf2_sha256') user = UserProfile(email=register_email, password=password, username=register_username, is_active=False, is_staff=False) user.email_user('激活你的用户', '请点击链接:' + url, '*****@*****.**') request.session['email_activate'] = mail_activate_info['email'] request.session['verify_code_activate'] = mail_activate_info[ 'verify_code'] user.save() msg['isSuccess'] = True except Exception, e: msg['isSuccess'] = False return HttpResponse(json.dumps(msg), content_type="application/json") #注册成功或注册邮箱发送后回执 def registerorretrieve_sucess(request, param): msg = {} try: method = param.split('/')[0] email = param.split('/')[1] user = UserProfile.objects.get(email=email) if method == 'register': msg['info'] = 'register'