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

oauth base login

parent b7db3987
No related branches found
No related tags found
No related merge requests found
import logging
from flask import Blueprint, Flask, Config, url_for, request, redirect, session, jsonify, \
make_response
from flask import Blueprint, url_for, request, redirect, session, make_response
from flask_oauthlib.client import OAuth, OAuthRemoteApp
from portal import oauth
from portal.database.models import User
from portal.service import service
from portal.service.service import find_user
log = logging.getLogger(__name__)
......@@ -47,10 +47,6 @@ def oauth_login():
return gitlab.authorize(callback=callback)
def user_oauth_login(user):
pass
def user_oauth_register(user_info):
new_user = User(
uco=None,
......@@ -64,11 +60,11 @@ def user_oauth_register(user_info):
def user_login(user_info):
user = User.query.find_by(username=user_info['user_name'])
user = find_user(user_info['username'])
if not user:
return user_oauth_register(user_info)
user_oauth_register(user_info)
resp = make_response(redirect(oauth.app.config.get('FRONTEND_URL')))
resp.set_cookie('user_name', user.username)
resp.set_cookie('username', user.username)
return resp
......
......@@ -30,8 +30,8 @@ class Login(Resource):
raise PortalAPIError(400, message="Missing login type.")
if data['type'] == 'user':
username = data.get('username')
password = data.get('password')
username = data.get('username', None)
password = data.get('password', None)
gitlab_access_token = data.get('gitlab_access_token', None)
client = login_user(gitlab_access_token, password, username)
......
from portal.service.errors import IncorrectPasswordError, UnauthorizedError
from portal.service.errors import IncorrectPasswordError, UnauthorizedError, PortalAPIError
from portal.service.service import find_user, find_component
......@@ -20,11 +20,17 @@ def auth_gitlab_access_token(username, gitlab_access_token):
Verify that token is for user
Args:
gitlab_access_token:
username: username of the user attempting to log in
gitlab_access_token: access token string from gitlab
Returns: the authenticated user
"""
if gitlab_access_token is None:
raise PortalAPIError(400, 'No gitlab access token found.')
# TODO: validate gitlab token
user = find_user(username)
return user
def auth_username_password(username, password):
......
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