示例#1
0
def do_populate():
    """
    :param dict scope_dict: Given a dictionary of scope definitions, {name: scope_namedtuple}, load the
        resulting data into a database collection
    :return:
    """
    scope_dict = oauth_scopes.public_scopes

    # Clear the scope collection and populate w/ only public scopes,
    # nothing references these objects other than CAS in name only.
    ApiOAuth2Scope.remove()

    for name, scope in scope_dict.iteritems():
        # Update a scope if it exists, else populate
        if scope.is_public is True:
            get_or_create(name, scope.description, save=True)
        else:
            logger.info("{} is not a publicly advertised scope; did not load into database".format(name))
示例#2
0
def do_populate():
    """
    :param dict scope_dict: Given a dictionary of scope definitions, {name: scope_namedtuple}, load the
        resulting data into a database collection
    :return:
    """
    scope_dict = oauth_scopes.public_scopes

    # Clear the scope collection and populate w/ only public scopes,
    # nothing references these objects other than CAS in name only.
    ApiOAuth2Scope.remove()

    for name, scope in scope_dict.iteritems():
        # Update a scope if it exists, else populate
        if scope.is_public is True:
            get_or_create(name, scope.description, save=True)
        else:
            logger.info(
                "{} is not a publicly advertised scope; did not load into database"
                .format(name))
示例#3
0
def get_or_create(name, description, save=True):
    """
    Populate or update the database entry, as needed

    :param name:
    :param description:
    :return:
    """
    if name != name.lower():
        raise ValueError(
            'Scope names are case-sensitive, and should always be lower-case.')

    try:
        scope_obj = ApiOAuth2Scope.find_one(Q('name', 'eq', name))
    except NoResultsFound:
        scope_obj = ApiOAuth2Scope(name=name, description=description)
        print "Created new database entry for: ", name
    else:
        scope_obj.description = description
        print "Updating existing database entry for: ", name

    if save is True:
        scope_obj.save()
    return scope_obj
示例#4
0
def get_or_create(name, description, save=True):
    """
    Populate or update the database entry, as needed

    :param name:
    :param description:
    :return:
    """
    if name != name.lower():
        raise ValueError('Scope names are case-sensitive, and should always be lower-case.')

    try:
        scope_obj = ApiOAuth2Scope.find_one(Q('name', 'eq', name))
    except NoResultsFound:
        scope_obj = ApiOAuth2Scope(name=name, description=description)
        print "Created new database entry for: ", name
    else:
        scope_obj.description = description
        print "Updating existing database entry for: ", name

    if save is True:
        scope_obj.save()
    return scope_obj