Example #1
0
 def find_user(cls, session_id):
     s = cls.one(session_id=session_id)
     if s is None or s.expired():
         return User.guest()
     else:
         u = User.one(id=s.user_id)
         if u is None:
             return User.guest()
         else:
             return u
Example #2
0
def current_user(request):
    if 'session_id' in request.cookies:
        session_id = request.cookies['session_id']
        u = Session.find_user(session_id=session_id)
        return u
    else:
        return User.guest()
Example #3
0
def test():
    connection = pymysql.connect(
        host='localhost',
        user='******',
        password='******',
        # db='web8',
        charset='utf8mb4',
        cursorclass=pymysql.cursors.DictCursor)

    with connection.cursor() as cursor:
        cursor.execute('DROP DATABASE IF EXISTS`web8`')
        cursor.execute('CREATE DATABASE `web8` CHARACTER SET utf8mb4')
        cursor.execute('USE `web8`')

        cursor.execute(User.sql_create)
        cursor.execute(Session.sql_create)
        cursor.execute(Weibo.sql_create)
        cursor.execute(Comment.sql_create)

    connection.commit()
    connection.close()

    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)
    u, result = User.login_user(form)
    assert u is not None, result
    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)

    session_id = random_string()
    form = dict(
        session_id=session_id,
        user_id=u.id,
    )
    Session.new(form)
    s: Session = Session.one(session_id=session_id)
    assert s.session_id == session_id
Example #4
0
def route_login(request):
    """
    登录页面的路由函数
    """
    log('login, headers', request.headers)
    log('login, cookies', request.cookies)
    user_current = current_user(request)
    log('current user', user_current)

    form = request.form()
    user_login, result = User.login_user(form)
    result = urllib.parse.quote_plus(result)
    if user_login is not None:
        session_id = Session.add(user_login.id)
        headers = {'Set-Cookie': 'session_id={}'.format(session_id)}
    else:
        headers = {}

    # return redirect('/todo')
    return redirect('/login/view', result=result, headers=headers)
Example #5
0
 def user(self):
     u = User.one(id=self.user_id)
     return u
Example #6
0
def route_register(request):
    form = request.form()
    result = User.register_user(form)
    # 换行符需要编码,不然显示不全
    result = urllib.parse.quote_plus(result)
    return redirect('/register/view', result=result)
Example #7
0
def test():
    connection = pymysql.connect(
        host='localhost',
        user='******',
        password='******'.format(secret.database_password),
        # db='web8',
        charset='utf8mb4',
        cursorclass=pymysql.cursors.DictCursor)

    with connection.cursor() as cursor:
        cursor.execute('DROP DATABASE IF EXISTS`web`')
        cursor.execute('CREATE DATABASE `web` CHARACTER SET utf8mb4')
        cursor.execute('USE `web`')

        cursor.execute(User.sql_create)
        cursor.execute(Session.sql_create)
        cursor.execute(Todo.sql_create)
        cursor.execute(Weibo.sql_create)
        cursor.execute(Comment.sql_create)

    connection.commit()
    connection.close()

    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)
    u, result = User.login_user(form)
    assert u is not None, result
    form = dict(
        username='******',
        password='******',
    )
    User.register_user(form)

    session_id = random_string()
    form = dict(
        session_id=session_id,
        user_id=u.id,
    )
    Session.new(form)
    s: Session = Session.one(session_id=session_id)
    assert s.session_id == session_id

    form = dict(
        title='test todo',
        user_id=u.id,
    )
    t = Todo.add(form, u.id)
    assert t.title == 'test todo'

    form = dict(
        content='test weibo',
        user_id=u.id,
    )
    w = Weibo.add(form, u.id)
    assert w.content == 'test weibo'

    form = dict(
        content='test comment',
        user_id=u.id,
    )
    c = Comment.add(form, u.id, w.id)
    assert c.content == 'test comment'