示例#1
0
def fb_login(request):
    if 'id' not in request.POST or 'ot' not in request.POST:
        return HttpResponseBadRequest()
    user = User.objects.get(facebook_id=request.POST['id'], is_active=True)
    if user.fb_access_token != request.POST['ot']:
        user.fb_access_token = request.POST['ot']
        user.save()
    cache.put_on_handle(user, user.username)
    #perform for all that login magic that happens under the covers
    login(request, user)
    response = {'user_id': user.id, 'fb_access_token': user.fb_access_token}
    return set_auth_cookies(json_response({'result': response}), user)
示例#2
0
文件: views.py 项目: Bartelo/openjumo
def fb_login(request):
    if 'id' not in request.POST or 'ot' not in request.POST:
        return HttpResponseBadRequest()
    user = User.objects.get(facebook_id = request.POST['id'], is_active=True)
    if user.fb_access_token != request.POST['ot']:
        user.fb_access_token = request.POST['ot']
        user.save()
    cache.put_on_handle(user, user.username)
    #perform for all that login magic that happens under the covers
    login(request, user)
    response = {'user_id':user.id, 'fb_access_token':user.fb_access_token}
    return set_auth_cookies(json_response({'result' : response}), user)
示例#3
0
def setup(request):
    sans_facebook = True if request.GET.has_key(
        'sans_facebook') and request.GET['sans_facebook'] else False
    redirect_to = request.GET.get('redirect_to', "/")

    form = CreateAccountForm(initial={
        'redirect_to': redirect_to,
    })
    if request.POST:
        sans_facebook = True if request.POST.has_key(
            'sans_facebook') and request.POST['sans_facebook'] else False
        form = CreateAccountForm(request.POST)
        if form.is_valid():
            u = User()
            u.bio = form.cleaned_data['bio']
            u.birth_year = form.cleaned_data['birth_year']
            u.email = u.long_email = form.cleaned_data['email']
            u.fb_access_token = form.cleaned_data['fb_access_token']
            u.gender = form.cleaned_data['gender']
            u.first_name = form.cleaned_data['first_name']
            u.last_name = form.cleaned_data['last_name']
            u.facebook_id = form.cleaned_data['fbid']
            u.bio = u.bio.encode('utf-8') if u.bio else ""
            u.first_name = u.first_name.encode('utf-8') if u.first_name else ""
            u.last_name = u.last_name.encode('utf-8') if u.last_name else ""
            if form.cleaned_data['location_data']:
                u.location = Location.get_or_create(
                    form.cleaned_data['location_data'])
            u.next_email_time = datetime.datetime.now() + timedelta(days=1)
            u.username = create_handle('%s%s' % (u.first_name, u.last_name))
            u.password = hash_password(form.cleaned_data['password'])
            u.save()

            Subscription.get_or_create(user=u, pub_id=NOTIFICATIONS_PUB)

            #Post to Facebook
            if form.cleaned_data['post_to_facebook']:
                fb_helpers.post_joined_to_wall(u)

            cache.put_on_handle(u, u.username)

            redirect_to = form.cleaned_data['redirect_to'] or '/'
            #perform for all that login magic that happens under the covers
            attempt_login(request, u.username, form.cleaned_data["password"])
            return set_auth_cookies(HttpResponseRedirect(redirect_to), u)

    return render(
        request, 'user/setup.html', {
            'title': 'Setup your account',
            'create_form': form,
            'sans_facebook': sans_facebook,
        })
示例#4
0
文件: views.py 项目: Bartelo/openjumo
def setup(request):
    sans_facebook = True if request.GET.has_key('sans_facebook') and request.GET['sans_facebook'] else False
    redirect_to = request.GET.get('redirect_to', "/")

    form = CreateAccountForm(initial={'redirect_to': redirect_to,})
    if request.POST:
        sans_facebook = True if request.POST.has_key('sans_facebook') and request.POST['sans_facebook'] else False
        form = CreateAccountForm(request.POST)
        if form.is_valid():
            u = User()
            u.bio = form.cleaned_data['bio']
            u.birth_year = form.cleaned_data['birth_year']
            u.email = u.long_email = form.cleaned_data['email']
            u.fb_access_token = form.cleaned_data['fb_access_token']
            u.gender = form.cleaned_data['gender']
            u.first_name = form.cleaned_data['first_name']
            u.last_name = form.cleaned_data['last_name']
            u.facebook_id = form.cleaned_data['fbid']
            u.bio = u.bio.encode('utf-8') if u.bio else ""
            u.first_name = u.first_name.encode('utf-8') if u.first_name else ""
            u.last_name = u.last_name.encode('utf-8') if u.last_name else ""
            if form.cleaned_data['location_data']:
                u.location = Location.get_or_create(form.cleaned_data['location_data'])
            u.next_email_time = datetime.datetime.now() + timedelta(days = 1)
            u.username = create_handle('%s%s' % (u.first_name, u.last_name))
            u.password = hash_password(form.cleaned_data['password'])
            u.save()

            Subscription.get_or_create(user = u, pub_id = NOTIFICATIONS_PUB)

            #Post to Facebook
            if form.cleaned_data['post_to_facebook']:
                fb_helpers.post_joined_to_wall(u)

            cache.put_on_handle(u, u.username)

            redirect_to = form.cleaned_data['redirect_to'] or '/'
            #perform for all that login magic that happens under the covers
            attempt_login(request, u.username, form.cleaned_data["password"])
            return set_auth_cookies(HttpResponseRedirect(redirect_to), u)

    return render(request, 'user/setup.html', {
        'title' : 'Setup your account',
        'create_form' : form,
        'sans_facebook': sans_facebook,
        })
示例#5
0
 def get_location(self):
     if self._location is not None:
         return self._location
     self._location = self.location
     cache.put_on_handle(self, self.username)
     return self._location
示例#6
0
def clean_url(request, handle):
    org_id = None
    issue_id = None
    user_id = None
    org = None
    issue = None
    user = None

    handle = re.sub(r'[^a-zA-Z0-9\-_]+', '', handle).lower()

    # try first for cache!
    org_id = django_cache.get(cache._cache_key(Org, handle))
    if org_id:
        org = django_cache.get(cache._cache_key(Org, org_id))
        if org:
            return return_org(request, org)

    issue_id = django_cache.get(cache._cache_key(Issue, handle))
    if issue_id:
        issue = django_cache.get(cache._cache_key(issue, handle))
        if issue:
            return return_issue(request, issue)

    user_id = django_cache.get(cache._cache_key(user, handle))
    if user_id:
        user = django_cache.get(cache._cache_key(user, handle))
        if user:
            return return_user(request, user)

    # try second for db!
    org = None
    issue = None
    user = None

    try:
        org = Org.objects.get(handle=handle)
        cache.put_on_handle(org, handle)
        return return_org(request, org)
    except Org.DoesNotExist:
        logging.error("Org Handle %s doesn't exist." % handle)
    except:
        logging.exception("Org Handler Exception")

    try:
        user = User.objects.get(username=handle, is_active=True)
        cache.put_on_handle(user, handle)
        return return_user(request, user)
    except User.DoesNotExist:
        logging.error("User Username %s doesn't exist." % handle)
    except:
        logging.exception("User Handler Exception")

    try:
        issue = Issue.objects.get(handle=handle)
        cache.put_on_handle(issue, handle)
        return return_issue(request, issue)
    except Issue.DoesNotExist:
        logging.error("Issue Handle %s doesn't exist." % handle)
    except:
        logging.exception("Issue Handler Exception")

    raise Http404
示例#7
0
 def get_location(self):
     if self._location is not None:
         return self._location
     self._location = self.location
     cache.put_on_handle(self, self.username)
     return self._location
示例#8
0
文件: views.py 项目: Bartelo/openjumo
def clean_url(request, handle):
    org_id = None
    issue_id = None
    user_id = None
    org = None
    issue = None
    user = None

    handle = re.sub(r'[^a-zA-Z0-9\-_]+', '', handle).lower()

    # try first for cache!
    org_id = django_cache.get(cache._cache_key(Org, handle))
    if org_id:
        org = django_cache.get(cache._cache_key(Org, org_id))
        if org:
            return return_org(request, org)

    issue_id = django_cache.get(cache._cache_key(Issue, handle))
    if issue_id:
        issue = django_cache.get(cache._cache_key(issue, handle))
        if issue:
            return return_issue(request, issue)

    user_id = django_cache.get(cache._cache_key(user, handle))
    if user_id:
        user = django_cache.get(cache._cache_key(user, handle))
        if user:
            return return_user(request, user)

    # try second for db!
    org = None
    issue = None
    user = None


    try:
        org = Org.objects.get(handle = handle)
        cache.put_on_handle(org, handle)
        return return_org(request, org)
    except Org.DoesNotExist:
        logging.error("Org Handle %s doesn't exist." % handle)
    except:
        logging.exception("Org Handler Exception")

    try:
        user = User.objects.get(username = handle, is_active = True)
        cache.put_on_handle(user, handle)
        return return_user(request, user)
    except User.DoesNotExist:
        logging.error("User Username %s doesn't exist." % handle)
    except:
        logging.exception("User Handler Exception")

    try:
        issue = Issue.objects.get(handle = handle)
        cache.put_on_handle(issue, handle)
        return return_issue(request, issue)
    except Issue.DoesNotExist:
        logging.error("Issue Handle %s doesn't exist." % handle)
    except:
        logging.exception("Issue Handler Exception")

    raise Http404