예제 #1
0
def xhr_claim_no(request):
    from main import claiming
    from common.views import json_response
    page_id = request.POST['page_id']
    response = json_response({'success': True})
    response.delete_cookie(claiming.make_claim_id_from_page_id(page_id))
    return response
예제 #2
0
def pusher_auth(request):
    from common.views import response_403, json_response
    from main import permissions
    from main import pusher_helpers
    channel_name = request.POST['channel_name']
    tokens = pusher_helpers.parse_channel_name(channel_name)
    if len(tokens) < 3:
        return response_403()
    channel_type, channel_model, model_id = tokens
    socket_id = request.POST['socket_id']
    args = None
    if channel_model == 'page':
        page = get_object_or_404(Page, id=model_id)
        if not permissions.request_can_view(request, page):
            return response_403()
        if channel_type == 'presence':
            user_id = get_user_presence_id(request, page)
            args = dict(user_id=user_id)
    elif channel_model == 'user':
        user_id = int(model_id)
        user = request.user
        if not (user.is_authenticated() and user.id == user_id):
            return response_403()    
    token = pusher_helpers.make_permission(channel_name, socket_id, args)
    return json_response(token)
예제 #3
0
파일: views.py 프로젝트: reverie/seddit.com
def getrooms(request):
    """Gets info for the given rooms, from `rids` params."""
    rids = json.loads(request.GET['rids'])
    result = {}
    for shortname in rids:
        room, _ = Room.get_or_create_by_shortname(shortname)
        result[room.shortname] = room.to_dict()
    return json_response(result)
예제 #4
0
def xhr_quick_page(request):
    from common.views import json_response
    from main import claiming
    page = _make_quick_page(request)
    response = json_response(_new_api_success({"pageUrl": page.get_absolute_url()}))
    if not request.user.is_authenticated():
        claim_id = claiming.make_claim_id(page)
        response.set_signed_cookie(claim_id, '1')
    return response
예제 #5
0
파일: views.py 프로젝트: reverie/seddit.com
def reddit_room_suggestions(request):
    top9 = (Room.objects
                .order_by('-subscribers') # only the best
                .exclude(subscribers__isnull=True) # Rooms that aren't subreddits
                .exclude(shortname='') # Already included by default
                .exclude(shortname__in=['blog', 'announcements']) # Lame!
                )[:9]
            #.exclude([:10])
    top10 = [global_room] + list(top9)
    result = [r.to_dict() for r in top10]
    return json_response(result)
예제 #6
0
파일: views.py 프로젝트: reverie/seddit.com
def getauth(request):
    from core.cookies import SECURE_SESSION_COOKIE
    # Get user info for response
    u = request.user
    if not u.is_authenticated():
        response = None
    else:
        response = {
            'remote_id': u.username
        }
    response = json_response(response)

    # Set session cookies
    request.session.set_test_cookie() # easy way to ensure session exists -- necessary?
    ss_val = tornado_cookies.generate_secure_cookie(SECURE_SESSION_COOKIE, request.session.session_key)
    response.set_cookie(SECURE_SESSION_COOKIE, ss_val)

    global_readable = get_permission(request, response, global_room, 'r')
    assert global_readable
    return response
예제 #7
0
파일: views.py 프로젝트: reverie/seddit.com
def internal_auth(request):
    username = request.POST['username']
    password = request.POST['password']
    f = RedditLoginForm(request.POST)
    return json_response(f.is_valid())
예제 #8
0
파일: views.py 프로젝트: reverie/seddit.com
def redditcode(request):
    code = ''.join([random.choice(CODE_CHARS) for x in xrange(16)])
    return json_response({
        'code': code,
        'sig': tornado_cookies.generate_secure_cookie('code', code)
    })
예제 #9
0
파일: views.py 프로젝트: reverie/seddit.com
def getroom(request):
    """Gets info for the given room, from `title` param."""
    shortname = request.GET['shortname']
    room, _ =  Room.get_or_create_by_shortname(shortname)
    return json_response(room.to_dict())