예제 #1
0
 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
예제 #2
0
    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()
예제 #3
0
    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})
예제 #4
0
            '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'