This commit is contained in:
Yûki VACHOT 2022-01-05 11:44:46 +01:00
parent 77c2eb972d
commit 2512f8e312
5 changed files with 23 additions and 11 deletions

View file

@ -2,7 +2,7 @@ from . import db
class Logs(db.Model): class Logs(db.Model):
__bind_key__ = 'flaskaled-srv2' __bind_key__ = 'db-logs'
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.TIMESTAMP(), nullable=False) date = db.Column(db.TIMESTAMP(), nullable=False)

View file

@ -17,10 +17,12 @@ def login():
# TODO: Token Authentication # TODO: Token Authentication
if res['status'] == 0: if res['status'] == 0:
user = res['data'] user = res['data']
token = create_auth_token(res['data']) token = create_auth_token(user)
return send_message(res['message'], user, token) return send_message(res['message'], user, token)
elif res['status'] == 1: elif res['status'] == 1:
return send_error(404, res['message']) user = None
token = create_auth_token(user)
return send_error(404, res['message'], token)
else: else:
return send_error(400, 'POST Request Error : Need email, password fields.') return send_error(400, 'POST Request Error : Need email, password fields.')
@ -47,14 +49,13 @@ def register():
# Logout # Logout
@app.route('/api/logout', methods=['DELETE']) @app.route('/api/logout', methods=['DELETE'])
def logout(): def logout():
token = check_auth_token(request, 'X-Access-Token') token = check_auth_token(request)
if token['success']: if token['success']:
return send_message('User disconnected.', None) return send_message('User disconnected.', None)
else: else:
return send_error(500, token['message']) return send_error(500, token['message'])
# Update User # Update User
@app.route('/api/user/update', methods=['PUT']) @app.route('/api/user/update', methods=['PUT'])
def user_update(): def user_update():

View file

@ -2,17 +2,19 @@ from . import db
class Users(db.Model): class Users(db.Model):
__bind_key__ = 'flaskaled-srv1' __bind_key__ = 'db-users'
id = db.Column(db.Integer, primary_key=True, autoincrement=True) id = db.Column(db.Integer, primary_key=True, autoincrement=True)
email = db.Column(db.String(), nullable=False, unique=True) email = db.Column(db.String(), nullable=False, unique=True)
nickname = db.Column(db.String(), nullable=False)
hash_pass = db.Column(db.LargeBinary(), nullable=False) hash_pass = db.Column(db.LargeBinary(), nullable=False)
salt = db.Column(db.LargeBinary(), nullable=False) salt = db.Column(db.LargeBinary(), nullable=False)
is_admin = db.Column(db.Boolean, default=False, nullable=False) is_admin = db.Column(db.Boolean, default=False, nullable=False)
def __init__(self, email, hash_pass, salt, is_admin): def __init__(self, email, nickname, hash_pass, salt, is_admin):
self.email = email self.email = email
self.hash_pass = hash_pass self.hash_pass = hash_pass
self.nickname = nickname
self.salt = salt self.salt = salt
self.is_admin = is_admin self.is_admin = is_admin
@ -20,6 +22,7 @@ class Users(db.Model):
return { return {
'id': self.id, 'id': self.id,
'email': self.email, 'email': self.email,
'nickname': self.nickname,
'hash_pass': self.hash_pass, 'hash_pass': self.hash_pass,
'salt': self.salt, 'salt': self.salt,
'is_admin': self.is_admin 'is_admin': self.is_admin
@ -29,5 +32,6 @@ class Users(db.Model):
return { return {
'id': self.id, 'id': self.id,
'email': self.email, 'email': self.email,
'nickname': self.nickname,
'is_admin': self.is_admin 'is_admin': self.is_admin
} }

View file

@ -13,11 +13,11 @@ class Config(object):
SQLALCHEMY_ECHO = False SQLALCHEMY_ECHO = False
SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI_1 = os.environ.get('DATABASE_URL_1', None) SQLALCHEMY_DATABASE_URI_1 = os.environ.get('DATABASE_URL_USERS', None)
SQLALCHEMY_DATABASE_URI_2 = os.environ.get('DATABASE_URL_2', None) SQLALCHEMY_DATABASE_URI_2 = os.environ.get('DATABASE_URL_LOGS', None)
SQLALCHEMY_BINDS = { SQLALCHEMY_BINDS = {
'flaskaled-srv1': SQLALCHEMY_DATABASE_URI_1, 'db-users': SQLALCHEMY_DATABASE_URI_1,
'flaskaled-srv2': SQLALCHEMY_DATABASE_URI_2 'db-logs': SQLALCHEMY_DATABASE_URI_2
} }
SECRET_KEY = os.environ.get('SECRET_KEY', 'default_secret_key') SECRET_KEY = os.environ.get('SECRET_KEY', 'default_secret_key')
@ -26,12 +26,18 @@ class Config(object):
class ProductionConfig(Config): class ProductionConfig(Config):
DEBUG = False DEBUG = False
SQLALCHEMY_ECHO = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
class StagingConfig(Config): class StagingConfig(Config):
STAGING = True STAGING = True
SQLALCHEMY_ECHO = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(Config): class DevelopmentConfig(Config):
DEVELOPMENT = True DEVELOPMENT = True
DEBUG = True DEBUG = True
SQLALCHEMY_ECHO = True
SQLALCHEMY_TRACK_MODIFICATIONS = True

View file

@ -4,6 +4,7 @@ CREATE TABLE IF NOT EXISTS users
( (
id serial PRIMARY KEY, id serial PRIMARY KEY,
email character varying(320) NOT NULL, email character varying(320) NOT NULL,
nickname character varying(50) NOT NULL
hash_pass bytea NOT NULL, hash_pass bytea NOT NULL,
salt bytea NOT NULL, salt bytea NOT NULL,
is_admin boolean NOT NULL DEFAULT FALSE is_admin boolean NOT NULL DEFAULT FALSE