示例#1
0
文件: account.py 项目: leowmjw/spendb
def register():
    """ Perform registration of a new user """
    require.account.create()
    data = AccountRegister().deserialize(request_data())

    # Check if the username already exists, return an error if so
    if Account.by_name(data['name']):
        raise colander.Invalid(
            AccountRegister.name,
            _("Login name already exists, please choose a "
              "different one"))

    # Check if passwords match, return error if not
    if not data['password1'] == data['password2']:
        raise colander.Invalid(AccountRegister.password1,
                               _("Passwords don't match!"))

    # Create the account
    account = Account()
    account.name = data['name']
    account.fullname = data['fullname']
    account.email = data['email']
    account.public_email = data['public_email']
    account.password = generate_password_hash(data['password1'])

    db.session.add(account)
    db.session.commit()

    # Perform a login for the user
    login_user(account, remember=True)

    # Registration successful - Redirect to the front page
    return jsonify(account)
示例#2
0
文件: account.py 项目: trickvi/spendb
def register():
    """ Perform registration of a new user """
    disable_cache()
    require.account.create()
    data = AccountRegister().deserialize(request_data())

    # Check if the username already exists, return an error if so
    if Account.by_name(data['name']):
        raise colander.Invalid(
            AccountRegister.name,
            _("Login name already exists, please choose a "
              "different one"))

    # Check if passwords match, return error if not
    if not data['password1'] == data['password2']:
        raise colander.Invalid(AccountRegister.password1,
                               _("Passwords don't match!"))

    # Create the account
    account = Account()
    account.name = data['name']
    account.fullname = data['fullname']
    account.email = data['email']
    account.public_email = data['public_email']
    account.password = generate_password_hash(data['password1'])

    db.session.add(account)
    db.session.commit()

    # Perform a login for the user
    login_user(account, remember=True)

    # Registration successful - Redirect to the front page
    return jsonify(account)
示例#3
0
文件: account.py 项目: trickvi/spendb
 def decode(self, cstruct):
     from spendb.model import Account
     if isinstance(cstruct, basestring):
         return Account.by_name(cstruct)
     if isinstance(cstruct, dict):
         return self.decode(cstruct.get('name'))
     return None
示例#4
0
    def decode(self, cstruct):
        from spendb.model import Account

        if isinstance(cstruct, basestring):
            return Account.by_name(cstruct)
        if isinstance(cstruct, dict):
            return self.decode(cstruct.get("name"))
        return None
示例#5
0
文件: session.py 项目: trickvi/spendb
def login():
    data = request_data()
    account = Account.by_name(data.get("login"))
    if account is not None:
        if check_password_hash(account.password, data.get("password")):
            login_user(account, remember=True)
            return jsonify({"status": "ok", "message": _("Welcome back, %(name)s!", name=account.name)})
    return jsonify({"status": "error", "errors": {"password": _("Incorrect user name or password!")}}, status=400)
示例#6
0
文件: account.py 项目: trickvi/spendb
def view(account):
    """ Generate a profile page for a user (from the provided name) """
    account = obj_or_404(Account.by_name(account))
    data = account.to_dict()
    if account == current_user or current_user.admin:
        data['email'] = account.email
        data['public_email'] = account.public_email
        data['twitter_handle'] = account.twitter_handle
        data['public_twitter'] = account.public_twitter
    return jsonify(data)
示例#7
0
文件: account.py 项目: leowmjw/spendb
def view(account):
    """ Generate a profile page for a user (from the provided name) """
    account = obj_or_404(Account.by_name(account))
    data = account.to_dict()
    if account == current_user or current_user.admin:
        data['email'] = account.email
        data['public_email'] = account.public_email
        data['twitter_handle'] = account.twitter_handle
        data['public_twitter'] = account.public_twitter
    return jsonify(data)
示例#8
0
def login():
    data = request_data()
    account = Account.by_name(data.get('login'))
    if account is not None:
        if check_password_hash(account.password, data.get('password')):
            login_user(account, remember=True)
            return jsonify({
                'status': 'ok',
                'message': _("Welcome back, %(name)s!", name=account.name)
            })
    return jsonify({
        'status': 'error',
        'errors': {
            'password': _("Incorrect user name or password!")
        }
    }, status=400)
示例#9
0
文件: session.py 项目: leowmjw/spendb
def login():
    data = request_data()
    account = Account.by_name(data.get('login'))
    if account is not None:
        if check_password_hash(account.password, data.get('password')):
            login_user(account, remember=True)
            return jsonify({
                'status':
                'ok',
                'message':
                _("Welcome back, %(name)s!", name=account.name)
            })
    return jsonify(
        {
            'status': 'error',
            'errors': {
                'password': _("Incorrect user name or password!")
            }
        },
        status=400)