Пример #1
0
 def save(self, commit=True):
     """
     - Extracts form data
     - Searches User database for user with same email
       - Found email, reuse the User object for new Role
       - Did not find email, create the User object for new Role 
     """
     email = self.cleaned_data.get('email')
     username = self.cleaned_data.get('username')
     password = self.cleaned_data.get('password')
     
     # Create user for new role
     user = create_user(email, username, password, is_active=True)
     user.save()
     print user
     
     # Create each role
     user_account = PostAccount.objects.create(
            user=user,
            slug=generate_unique_slug('account','PostAccount')
     )
     
     user_account.save()
     print user_account
     
     return user_account
Пример #2
0
def send_confirmation_and_redirect(request, email, task):
    email_activation_key = utils.make_email_hash(email, task)
    phone_activation_code = utils.make_verify_phone_code()
    u = utils.create_user(
                    name=request.POST.get('name'), 
                    password=request.POST.get('password'), 
                    email=request.POST.get('email'), 
                    phone_number=request.POST.get('phone_number'), 
                    phone_activation_code=phone_activation_code, 
                    email_activation_key=email_activation_key)
    u.save()
    utils.send_verification_email(email, task)
    return http.HttpResponseRedirect('/account/email-sent/')
Пример #3
0
def sns_callback(request,sns):
    from account.models import UserProfile
    from account.utils import create_user, login_by_profile
    # get user info from sns site
    if sns == 'weibo':
        from TaskManager.weibo import APIError, APIClient

        code = request.GET.get('code')
        client = APIClient()
        tokendict = client.request_access_token(code)
        client.set_access_token(tokendict.access_token, tokendict.expires_in)

        sns_user = client.users.show.get(uid = tokendict.uid)

        userinfo = dict(
            uid = sns_user.id, \
            domain = sns_user.domain, \
            name = sns_user.name, \
            nickname = sns_user.screen_name, \
            avatar_url = sns_user.avatar_large or sns_user.profile_image_url, \
            homepage = 'http://weibo.com/%s' % sns_user.domain, \
            auth_token = tokendict.access_token, \
            expired_time = tokendict.expires_in)

        try:
            userProfile = UserProfile.objects.get(weibo_id = tokendict.uid)
        except UserProfile.DoesNotExist:
            content = create_user(request, userinfo, sns)
            return render_to_response("snsreg-success.html", content,context_instance = RequestContext(request))

        login_by_profile(request,userProfile)
        return HttpResponseRedirect(reverse('userinfo'))

    elif sns == 'qq':
        from TaskManager.qq import APIError, APIClient
        code = request.GET.get('code')
        client = APIClient()
        tokendict = client.request_access_token(code)
        r = client.request_openid(tokendict.access_token)
        tokendict.uid = r.openid
        client.set_access_token(tokendict.access_token, tokendict.uid, tokendict.expires_in)

        sns_user = client.user.get_info.get(openid = tokendict.uid)
        sns_user = sns_user.data

        userinfo = dict(
            uid = sns_user.openid , \
            name = sns_user.name, \
            nickname = sns_user.nick, \
            avatar_url = '%s/100'% (sns_user.head), \
            homepage = sns_user.homepage, \
            auth_token = tokendict.access_token, \
            expired_time = tokendict.expires_in)

        try:
            userProfile = UserProfile.objects.get(qq_id = tokendict.uid)
        except UserProfile.DoesNotExist:
            content = create_user(request, userinfo, sns)
            return render_to_response("snsreg-success.html", content, context_instance = RequestContext(request))

        login_by_profile(request, userProfile)
        return HttpResponseRedirect(reverse('userinfo'))

    elif sns == 'renren':
        from TaskManager.renren import APIError, APIClient
        from account.utils import multi_get_letter

        code = request.GET.get('code')
        client = APIClient()
        tokendict = client.request_access_token(code)
        sns_user = tokendict.user

        for avatar in sns_user.avatar:
            if avatar['type'] == 'large':
                avatar_url = avatar['url']
                break;
                pass
            pass
        userinfo = dict(
            uid = sns_user.id , \
            name = multi_get_letter(sns_user.name), \
            nickname = sns_user.name, \
            avatar_url = avatar_url, \
            homepage = 'http://www.renren.com', \
            auth_token = tokendict.access_token, \
            expired_time = tokendict.expires_in)

        try:
            userProfile = UserProfile.objects.get(renren_id = sns_user.id)
        except UserProfile.DoesNotExist:
            content = create_user(request, userinfo, sns)
            return render_to_response("snsreg-success.html", content,context_instance = RequestContext(request))

        login_by_profile(request, userProfile)
        return HttpResponseRedirect(reverse('userinfo'))
    else:
        return HttpResponseRedirect(reverse('sns_notsupport'))

    pass