Example #1
0
def set_oauth_user(user_data, service, ui_locales) -> Dict[str, Any]:
    """

    :param user_data:
    :param service:
    :param ui_locales:
    :return: A Dictionary with a status an error and an user object
    """
    _tn = Translator(ui_locales)

    db_group = DBDiscussionSession.query(Group).filter_by(name='users').first()
    if not db_group:
        LOG.debug(
            "Error occured: No db_group for users during `set_oauth_user`")
        return {'error': _tn.get(_.errorTryLateOrContant)}

    ret_dict = user.set_new_oauth_user(user_data, user_data['id'], service,
                                       _tn)

    return {
        'status':
        ret_dict['success'] if ret_dict['success'] else ret_dict['error'],
        'error': ret_dict.get('error', ''),
        'user': ret_dict.get('user')
    }
Example #2
0
def __set_oauth_user(request, user_data, service, ui_locales):
    """

    :param request:
    :param user_data:
    :param service:
    :param ui_locales:
    :return:
    """
    _tn = Translator(ui_locales)

    db_group = DBDiscussionSession.query(Group).filter_by(name='users').first()
    if not db_group:
        logger('Auth.Login', 'Error occured')
        return {'error': _tn.get(_.errorTryLateOrContant)}

    ret_dict = user.set_new_oauth_user(user_data['firstname'],
                                       user_data['lastname'],
                                       user_data['nickname'],
                                       user_data['email'], user_data['gender'],
                                       user_data['id'], service, _tn)

    if ret_dict['success']:
        url = request.session['oauth_redirect_url']
        return __return_success_login(request, False, ret_dict['user'], False,
                                      url)
    else:
        return {'error': ret_dict['error'], 'success': ret_dict['success']}
Example #3
0
    def _collection_post(request):
        result = set_new_oauth_user(request.json_body, request.json_body['id'],
                                    request.json_body['service'],
                                    Translator(request.json_body['locale']))

        if result["success"]:
            request.response.status = 201
            return {"id": result["user"].uid}
        else:
            request.response.status = 400
            return result["error"]