Skip to content
Snippets Groups Projects
Commit 5e1a8a3c authored by Barbora Kompišová's avatar Barbora Kompišová
Browse files

oauth model + logic fixes

parent fb5ae3ff
No related branches found
No related tags found
No related merge requests found
...@@ -31,7 +31,7 @@ def _repr(instance): ...@@ -31,7 +31,7 @@ def _repr(instance):
class User(db.Model, EntityBase): class User(db.Model, EntityBase):
__tablename__ = 'user' __tablename__ = 'user'
id = db.Column(db.Text(length=36), default=lambda: str(uuid.uuid4()), primary_key=True) id = db.Column(db.Text(length=36), default=lambda: str(uuid.uuid4()), primary_key=True)
uco = db.Column(db.Integer, unique=True, nullable=False) uco = db.Column(db.Integer, unique=True)
email = db.Column(db.String(50), unique=True, nullable=False) email = db.Column(db.String(50), unique=True, nullable=False)
username = db.Column(db.String(15), unique=True, nullable=False) username = db.Column(db.String(15), unique=True, nullable=False)
name = db.Column(db.String(50)) name = db.Column(db.String(50))
......
...@@ -44,6 +44,7 @@ oauth_blueprint = Blueprint('oauth', __name__, url_prefix='/oauth') ...@@ -44,6 +44,7 @@ oauth_blueprint = Blueprint('oauth', __name__, url_prefix='/oauth')
@oauth_blueprint.route('/login', methods=['GET']) @oauth_blueprint.route('/login', methods=['GET'])
def oauth_login(): def oauth_login():
callback = url_for('oauth.oauth_authorized', _external=True, _scheme='https') callback = url_for('oauth.oauth_authorized', _external=True, _scheme='https')
log.debug(f"Callback set: {callback}")
return gitlab.authorize(callback=callback) return gitlab.authorize(callback=callback)
...@@ -57,12 +58,13 @@ def user_oauth_register(user_info): ...@@ -57,12 +58,13 @@ def user_oauth_register(user_info):
new_user.name = user_info['name'] new_user.name = user_info['name']
service.write_entity(new_user) service.write_entity(new_user)
log.debug(f"Created user={new_user}") log.debug(f"Created user={new_user}")
return new_user
def user_login(user_info): def user_login(user_info):
user = find_user(user_info['username']) user = find_user(user_info['username'])
if not user: if not user:
user_oauth_register(user_info) user = user_oauth_register(user_info)
resp = make_response(redirect(oauth.app.config.get('FRONTEND_URL'))) resp = make_response(redirect(oauth.app.config.get('FRONTEND_URL')))
resp.set_cookie('username', user.username) resp.set_cookie('username', user.username)
return resp return resp
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment