Пример #1
0
def save_setting():
    # 保存设置
    u = current_user()
    form = request.form.to_dict()
    User.update(u.id, **form)

    return redirect(url_for('.setting'))
Пример #2
0
def change_pass():
    # 更改密码, 然后跳转到登录页面
    u = current_user()
    form = request.form.to_dict()
    if u.password == User.salted_password(form['old_pass']):
        User.update(u.id, password=User.salted_password(form['new_pass']))
    return redirect(url_for('.login'))
Пример #3
0
def current_user():
    # 从 session 中找到 user_id 字段, 找不到就 -1
    # 然后用 id 找用户
    # 找不到就返回 None
    uid = session.get('user_id')
    u = User.one(id=uid)
    if u:
        return u
    else:
        return User.guest()
Пример #4
0
def avatar_add():
    # 上传用户图片
    file = request.files['avatar']

    # ../../root/.ssh/authorized_keys
    # filename = secure_filename(file.filename)
    suffix = file.filename.split('.')[-1]
    filename = '{}.{}'.format(str(uuid.uuid4()), suffix)
    path = os.path.join('images', filename)
    file.save(path)

    u = current_user()
    User.update(u.id, image='/images/{}'.format(filename))

    return redirect(url_for('.setting'))
Пример #5
0
def generate_fake_date():
    form = dict(
        username='******',
        password='******'
    )
    form['password'] = User.salted_password(form['password'])
    u = User.new(form)

    with open('markdown_demo.md', encoding='utf8') as f:
        content = f.read()
    form = dict(
        title='markdown demo',
        content=content
    )
    Topic.new(form, u.id)
Пример #6
0
def detail(id):
    # 返回到用户主页, 主页包含用户发表话题,回复等
    user = User.one(id=id)
    topics = user.topics()
    replies = user.replies()

    return render_template("user/detail.html",
                           user=user,
                           topics=topics,
                           replies=replies)
Пример #7
0
def register():
    # 用户注册处理函数
    # 注册成功, 定向的登录界面
    # 失败, 返回注册页面
    form = request.form
    # 用类函数来判断
    u = User.register(form)
    if u is not None:
        return redirect(url_for('.login_view'))
    else:
        return redirect(url_for('.register_view'))
Пример #8
0
def login():
    # 用户登录处理函数
    # 成功, 定向到首页, 设置 session
    # 失败, 返回登录页面
    form = request.form
    u = User.validate_login(form)
    if u is None:
        return redirect(url_for('.login_view'))
    else:
        # session 中写入 user_id
        session['user_id'] = u.id
        # 设置 cookie 有效期为 永久
        session.permanent = True
        return redirect(url_for('index.index'))
Пример #9
0
def add():
    # 发电子邮件
    form = request.form.to_dict()
    form['receiver_id'] = int(form['receiver_id'])
    u = current_user()
    form['sender_id'] = u.id

    r = User.one(id=form['receiver_id'])
    m = Message(subject=form['title'],
                body=form['content'],
                sender=admin_mail,
                recipients=[r.email])
    mail.send(m)

    m = Messages.new(form)
    return redirect(url_for('.index'))
Пример #10
0
def users_from_content(content):
    # 内容 @123 内容
    # 如果用户名含有空格 就不行了 @name 123
    # 'a b c' -> ['a', 'b', 'c']
    parts = content.split()
    users = []

    for p in parts:
        if p.startswith('@'):
            username = p[1:]
            u = User.one(username=username)
            print('users_from_content <{}> <{}> <{}>'.format(
                username, p, parts))
            if u is not None:
                users.append(u)

    return users