def _create_and_associate_reana_user(sender, token=None, response=None, account_info=None): try: user_email = account_info['user']['email'] user_fullname = account_info['user']['profile']['full_name'] username = account_info['user']['profile']['username'] search_criteria = dict() search_criteria['email'] = user_email users = Session.query(User).filter_by(**search_criteria).all() if users: user = users[0] else: user_access_token = secrets.token_urlsafe(16) user_parameters = dict(access_token=user_access_token) user_parameters['email'] = user_email user_parameters['full_name'] = user_fullname user_parameters['username'] = username user = User(**user_parameters) Session.add(user) Session.commit() except (InvalidRequestError, IntegrityError): Session.rollback() raise ValueError('Could not create user, ' 'possible constraint violation') except Exception: raise ValueError('Could not create user') return user
def _create_and_associate_reana_user(sender, token=None, response=None, account_info=None): try: user_email = account_info["user"]["email"] user_fullname = account_info["user"]["profile"]["full_name"] username = account_info["user"]["profile"]["username"] search_criteria = dict() search_criteria["email"] = user_email users = Session.query(User).filter_by(**search_criteria).all() if users: user = users[0] else: user_parameters = dict(email=user_email, full_name=user_fullname, username=username) user = User(**user_parameters) Session.add(user) Session.commit() except (InvalidRequestError, IntegrityError): Session.rollback() raise ValueError("Could not create user, " "possible constraint violation") except Exception: raise ValueError("Could not create user") return user
def _create_user(email, user_access_token, admin_access_token): """Create user with provided credentials.""" try: admin = Session.query(User).filter_by(id_=ADMIN_USER_ID).one_or_none() if admin_access_token != admin.access_token: raise ValueError('Admin access token invalid.') if not user_access_token: user_access_token = secrets.token_urlsafe(16) user_parameters = dict(access_token=user_access_token) user_parameters['email'] = email user = User(**user_parameters) Session.add(user) Session.commit() except (InvalidRequestError, IntegrityError) as e: Session.rollback() raise ValueError('Could not create user, ' 'possible constraint violation') return user
def _create_and_associate_reana_user(email, fullname, username): try: search_criteria = dict() search_criteria["email"] = email users = Session.query(User).filter_by(**search_criteria).all() if users: user = users[0] else: user_parameters = dict(email=email, full_name=fullname, username=username) user = User(**user_parameters) Session.add(user) Session.commit() except (InvalidRequestError, IntegrityError): Session.rollback() raise ValueError( "Could not create user, possible constraint violation") except Exception: raise ValueError("Could not create user") return user