Пример #1
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        user.set_attrs(form.data)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('web.login'))
    else:
        return render_template('auth/register.html', form=form)
Пример #2
0
 def func_wrapper(context, request):
     additional_params = []
     query_params = request.matchdict
     # Extract the API version
     try:
         api_version = int(query_params['api_version'][1:])
         if api_version not in ALLOWED_API_VERSIONS:
             return dict(error='Invalid api version')
         additional_params.append(api_version)
     except Exception:
         return dict(error='Invalid api version')
     try:
         json_body = {}
         # Grab the user if needed
         if enforce_user:
             if 'user_id' not in query_params:
                 return dict(error='Expected `user_id` in query')
             additional_params.append(User.get(query_params['user_id']))
         if request.method == 'GET':
             json_body = request.params
         elif request.method == 'POST':
             try:
                 json_body = request.json_body
             except Exception:
                 pass
         res = func(context, request, *additional_params, **json_body)
         return res or {}
     # Catch our exceptions
     except MyBitsException as e:
         return dict(error=e.message)
     # Catch any other exceptions
     except Exception as e:
         traceback.print_exc()
         print str(e)
         return dict(error='Unexpected error')
Пример #3
0
    def put(self):

        json_data = request.get_json()
        if not json_data:
            print('No data in this post. aborting')
            abort(400)

        username_old = json_data['username_old']
        age_old = int(json_data['age_old'])
        birthday_old = datetime.strptime(json_data['birthday_old'], "%Y-%m-%d")

        username_new = json_data['username_new']
        age_new = int(json_data['age_new'])
        birthday_new = datetime.strptime(json_data['birthday_new'], "%Y-%m-%d")

        user = User.query_single_by_username(username_old)
        if not user:
            print("UPDATE_ENTITY: User not found")
            abort(400)

        user.username = username_new
        user.age = age_new
        user.birthday = birthday_new

        user.put()

        return user.to_json()
Пример #4
0
 def add(self, username='', work_id=''):
     if username:
         user = User(username=username, user_type='NORMAL', work_id=work_id)
         db.session.add(user)
         db.session.commit()
         return user
     return None
Пример #5
0
def login():
    email = request.form.get('email')
    password = request.form.get('password')
    user = User.get_verified_user(email, password)
    if user:
        login_user(user, remember=True)
        return redirect('/profile')
    flash("There was an error authenticating your user account.", "warning")
    return redirect('/login')
Пример #6
0
 def get(self):
     users = User.query_all()
     # return json.dumps(users[0], cls=MyJsonEncoder)
     # return {
     #     'status': 'ok',
     #     'data:': [
     #         x.to_json() for x in users
     #     ]
     # }
     return [x.to_json() for x in users]
Пример #7
0
 def delete(self):
     username = request.headers["username"]
     if not username:
         print('No data in this post. aborting')
         abort(400)
     print username
     user = User.query_single_by_username(username)
     if not user:
         print "User does not exist"
         abort(400)
     user.key.delete()
     return {}, 204
Пример #8
0
    def post(self):
        json_data = request.get_json()
        if not json_data:
            print('No data in this post. aborting')
            abort(400)

        username = json_data['username']
        age = int(json_data['age'])
        birthday = datetime.strptime(json_data['birthday'], "%Y-%m-%d")

        if not username or not age or not birthday:
            print("API-Create-post: Username or age or birthday missing")
            abort(400)
        if User.query_single_by_username(username):
            print("API-Create-post: Username already exists")
            abort(500)

        user = User(
            username=username,
            age=age,
            birthday=birthday
        )
        print(user)
        user.put()
        return user.to_json()
Пример #9
0
def update_user_info(uuid):
    user = User.get(uuid=uuid)
    existing = True if user.password_hash else False
    if not user:
        abort(404)
    email = request.form.get('email')
    name = request.form.get('name')
    new_password = request.form.get('new_password')
    password_verification = request.form.get('password_verification')
    if new_password != password_verification:
        flash('Passwords do not match.', 'danger')
        return render_template('admin/register.html', user=user)
    current_password = request.form.get('current_password')
    try:
        user = update_user(uuid, email, name, new_password, current_password)
    except:
        flash('Incorrect current password for updating account.', 'danger')
        return render_template('admin/register.html', user=user)
    if existing:
        return render_template('admin/register.html', user=user)
    return redirect('/login')
Пример #10
0
def update_user_info(uuid):
    user = User.get(uuid=uuid)
    existing = True if user.password_hash else False
    if not user:
        abort(404)
    email = request.form.get('email')
    name = request.form.get('name')
    new_password = request.form.get('new_password')
    password_verification = request.form.get('password_verification')
    if new_password != password_verification:
        flash('Passwords do not match.', 'danger')
        return render_template('admin/register.html', user=user)
    current_password = request.form.get('current_password')
    try:
        user = update_user(uuid, email, name, new_password, current_password)
    except:
        flash('Incorrect current password for updating account.', 'danger')
        return render_template('admin/register.html', user=user)
    if existing:
        return render_template('admin/register.html', user=user)
    return redirect('/login')
Пример #11
0
def login():
    content = request.get_json()
    code = str(content['code'])
    sessionKey, openid = getUserInfo(code)
    res = User.query.filter_by(openid=openid).first()
    # 如果没有查询到用户id,则注册一个新的用户
    if res is None:
        u = User(openid=openid,
                 session_key=sessionKey,
                 token="",
                 expiration_time=utils.getSecondTime() + TOKEN_TIMEOUT)
        db.session.add(u)
        db.session.commit()

    # 为用户生成token
    token = utils.calculateHashCodeForString(openid +
                                             str(utils.getMilliTime()))
    res = User.query.filter_by(openid=openid).first()
    if res is not None:
        res.token = token
        res.expiration_time = utils.getSecondTime() + TOKEN_TIMEOUT
        db.session.commit()

    return jsonify(token=token)
Пример #12
0
def register(context, request, api_version):
    user_id = User.create()
    return dict(user_id=user_id)
Пример #13
0
def accept_invite(uuid):
    user = User.get(uuid=uuid)
    if not user:
        abort(404)
    return render_template('admin/register.html', user=user)
Пример #14
0
def get_users():
    users = User.get_list(to_json=True)
    return json.dumps(users), 200, {'Content-Type': 'application/json'}
Пример #15
0
 def author_name(self):
     author = User.get(uuid=self.author_uuid)
     if author:
         return author.email
     return ''
Пример #16
0
def load_user(id):
    from app.db.user import User
    user = User.get(uuid=id)
    return user
Пример #17
0
def accept_invite(uuid):
    user = User.get(uuid=uuid)
    if not user:
        abort(404)
    return render_template('admin/register.html', user=user)
Пример #18
0
def get_users():
    users = User.get_list(to_json=True)
    return json.dumps(users), 200, {'Content-Type': 'application/json'}