Ejemplo n.º 1
0
def cookie2user(cookie_str):
    '''
    Parse cookie and load user if cookie is valid.
    '''
    if not cookie_str:
        return None
    try:
        L = cookie_str.split('-')
        if len(L) != 3:
            return None
        uid, expires, sha1 = L
        if int(expires) < time.time():
            return None
        user = yield from User.find(uid)
        if user is None:
            return None
        s = '%s-%s-%s-%s' % (uid, user.passwd, expires, _COOKIE_KEY)
        if sha1 != hashlib.sha1(s.encode('utf-8')).hexdigest():
            logging.info('invalid sha1')
            return None
        user.passwd = '******'
        return user
    except Exception as e:
        logging.exception(e)
        return None
Ejemplo n.º 2
0
def cookie2user(cookie_str):
    '''
    Parse cookie and load user if cookie is valid.
    '''
    if not cookie_str:
        return None
    try:
        L = cookie_str.split('-')
        if len(L) != 3:
            return None
        uid, expires, sha1 = L
        if int(expires) < time.time():
            return None
        user = yield from User.find(uid)
        if user is None:
            return None
        s = '%s-%s-%s-%s' % (uid, user.passwd, expires, _COOKIE_KEY)
        if sha1 != hashlib.sha1(s.encode('utf-8')).hexdigest():
            logging.info('invalid sha1')
            return None
        user.passwd = '******'
        return user
    except Exception as e:
        logging.exception(e)
        return None
Ejemplo n.º 3
0
def cookie2user(cookie_str):
    '''
    Parse cookie and load user if cookie is valid.
    '''
    #若cookie信息为空在返回None:
    if not cookie_str:
        return None
    try:
        #将cookie信息按照‘-’进行切片处理:
        L = cookie_str.split('-')
        #若切片数组长度不为3,则返回None:
        if len(L) != 3:
            return None
        #分别取到uid,cookie有效期,用户信息摘要值:
        uid, expires, sha1 = L
        #若cookie有效期小于当前时间,则返回None:
        if int(expires) < time.time():
            return None
        #根据uid在数据库中查询对应的用户信息:
        user = yield from User.find(uid)
        #查询结果为空,则返回None:
        if user is None:
            return None
        #重组用户信息并计算SHA1摘要值,同cookie中的用户信息摘要值比对:
        s = '%s-%s-%s-%s' % (uid, user.passwd, expires, _COOKIE_KEY)
        if sha1 != hashlib.sha1(s.encode('utf-8')).hexdigest():
            #打印(无效SHA1摘要值)日志:
            logging.info('invalid sha1')
            return None
        user.passwd = '******'
        return user
    except Exception as e:
        logging.exception(e)
        return None
Ejemplo n.º 4
0
def cooike2user(cookie_str):
    """
    Parse cookie and load user if cookie is invalid

    """
    if not cookie_str:
        return None
    try:
        L = cookie_str.split("-")
        if len(L) != 3:
            return None
        uid, expires, sha1 = L
        if int(expires) < time.time():
            return None
        user = yield from User.find(uid)
        if user is None:
            return None
        s = '%s-%s-%s-%s' % (uid, user.password, expires, _COOKIE_KEY)
        if sha1 != hashlib.sha1(s.encode("utf-8")).hexdigest():
            logging.info('invalid sha1')
            return None
        user.password = "******"
        return user
    except Exception as e:
        logging.exception(e)
        return None
Ejemplo n.º 5
0
def api_grant_user(request, *, id):
    check_admin(request)
    user = yield from User.find(id)
    if (user.admin == 0):
        user.admin = 1
    else:
        user.admin = 0
    yield from user.update()
    return dict(id=id)
Ejemplo n.º 6
0
def find_model(model, id):
    if model == 'blog':
        blog = yield from Blog.find(id)
        return blog
    if model == 'user':
        user = yield from User.find(id)
        return user
    if model == 'comment':
        comment = yield from Comment.find(id)
        return comment
Ejemplo n.º 7
0
 def test(loop):
     yield from create_pool(loop=loop,
                            host='localhost',
                            port=3306,
                            user='******',
                            password='******',
                            db='awesome')
     # user = User(id=1, name='ding')
     # yield from user.save()
     r = yield from User.find('1')
     print(r)
     yield from destory_pool()
Ejemplo n.º 8
0
def api_delete_user(request, *, id):
    check_admin(request)
    user = yield from User.find(id)
    yield from user.remove()
    return dict(id=id)
Ejemplo n.º 9
0
def manage_users(*, UserID):
    user = yield from User.find(UserID)
    yield from user.remove()

    r = web.Response()
    return r