예제 #1
0
def route_profile(request):
    headers = {
        'Content-Type': 'text/html',
    }
    session_id = request.cookies.get('session_id', None)
    s = Session.find_by(session_id=session_id)
    if s is None:
        header = 'HTTP/1.x 302 Moved Temporarily\r\nLocation:http://127.0.0.1:3000/login\r\n'
        header += ''.join([
            '{}: {}\r\n'.format(k, v) for k, v in headers.items()
        ])
        body = ''
        r = '{}\r\n{}'.format(header, body)
        log('login 的响应', r)
        return r.encode()
    else:
        s = User.find_by(username=s.username)
        body = route_template('profile.html')
        body = body.replace('{{id}}', str(s.id))
        body = body.replace('{{username}}', s.username)
        body = body.replace('{{note}}', s.note)
        header = formatted_with_headers(headers)
        r = '{}\r\n{}'.format(header, body)
        log('login 的响应', r)
        return r.encode()
예제 #2
0
def current_user(request):
    # cookie 版本
    # username = request.cookies.get('user', '【游客】')
    # session 版本
    session_id = request.cookies.get('session_id', None)
    s = Session.find_by(session_id=session_id)
    if s is None:
        return '【游客】'
    else:
        return s.username
예제 #3
0
def current_user(request):
    session_id = request.cookies.get('session_id', '')
    if session_id is not None:
        s = Session.find_by(session_id=session_id)
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.find_by(id=user_id)
            return u
    return User.guest()
예제 #4
0
def current_user(request):
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        s = Session.find_by(session_id=session_id)
        if s is None or s.expired():
            return User.guest()
        else:
            user_id = s.user_id
            u = User.find_by(id=user_id)
            return u
    else:
        return User.guest()
예제 #5
0
def current_user(request):
    # username = request.cookies.get('user', User.guest())
    log('这是cookie', request.cookies)
    session_id = request.cookies.get('session_id', '')
    log('这是session_id', session_id)
    s = Session.find_by(session_id='{}'.format(session_id))
    # username = Session.find_by(session_id='{}'.format(session_id)).get(session_id, User.guest())
    log('这是查找到的s', s)
    if s:
        return s.username
    else:
        return User.guest()
예제 #6
0
def all(request):
    """
    返回当前用户所有 Todo,若是登录用户则根据 user_id 返回,否则根据 session_id 返回
    """
    session_id = request.query.get('sid')
    s = Session.find_by(session_id=session_id)
    if s is not None:
        user_id = s.user_id
        todos = Todo.find_all_json(user_id=user_id)
    else:
        todos = Todo.find_all_json(session_id=session_id)
    return json_response(todos)
예제 #7
0
def current_user(request):
    session_id = request.cookies.get('session_id')
    if session_id is not None:
        s = Session.find_by(session_id=session_id)
        now = time.time()
        if s.expired_time > now:
            u = User.find_by(id=s.user_id)
            log('current user 1', u)
            return u
        else:
            return User.guest()
    else:
        return User.guest()
예제 #8
0
def find_user(request):
    """
    查找当前用户的用户名
    """
    session = request.query.get('sid')
    s = Session.find_by(session_id=session)
    if s.session_id == s.user_id:
        username = "******"
    else:
        user_id = s.user_id
        user = User.find(user_id)
        username = user.username
    return json_response(username)
예제 #9
0
def current_user(request):
    session_id = request.cookies.get('session_id')
    if session_id is not None:
        s = Session.find_by(session_id=session_id)
        if s is not None:
            if not s.expired():
                user_id = s.user_id
                log('current user id <{}>'.format(user_id))
                u = User.find_by(id=user_id)
                return u
            else:
                return User.guest()
        else:
            return User.guest()
    else:
        return User.guest()
예제 #10
0
def login(request):
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        s = Session.find_by(session_id=session_id)
        if s is not None:
            s.delete(s.id)

    form = request.form()
    u, result = User.login(form)
    log('login post', result)
    if u is None:
        headers = None
        return redirect('/user/login/view?result={}'.format(result), headers)
    else:
        s = Session.make(u.id)
        headers = {'Set-Cookie': 'session_id={}; path=/'.format(s.session_id)}
        return redirect('/', headers)
예제 #11
0
파일: todo.py 프로젝트: snzhaoch/todolist
    def new(cls, form):
        """
        新增 Todo
        """
        # apiTodoAdd 传过来的 form 中 cookie 是 { cookie : sid=adsfwerqwedas } 形式的
        session_id = form.get('cookie', None).split('=')[1]
        # 查询 session 是否有相应的用户,有的话设置成相应的 user_id
        s = Session.find_by(session_id=session_id)
        if s is not None:
            user_id = s.user_id
            form['user_id'] = user_id
        m = super().new(form)
        m.session_id = session_id

        t = int(time.time())
        m.created_time = t
        m.updated_time = t
        m.save()
        return m
예제 #12
0
def route_profile(request):
    headers = {
        'Content-Type': 'text/html',
    }
    session_id = request.cookies.get('session_id', None)
    s = Session.find_by(session_id=session_id)
    if s is None:
        header = 'HTTP/1.x 302 redirect\r\nLocation:/login\r\n'
        header += ''.join(
            ['{}: {}\r\n'.format(k, v) for k, v in headers.items()])
        r = '{}\r\n'.format(header)
        return r.encode()
    else:
        headers = 'HTTP/1.x 210 VERY OK\r\nContent-Type: text/html\r\n'
        body = template('profile.html')
        username = s.username
        u = User.find_by(username=username)
        id = u.id
        note = u.note
        body = body.replace('{{username}}', username)
        body = body.replace('{{id}}', str(id))
        body = body.replace('{{note}}', note)
        r = headers + '\r\n' + body
        return r.encode()