Exemple #1
0
def create_public_user(apps, schema_editor):
    # Create public user
    username = settings.PUBLIC_ROLE
    email = settings.PUBLIC_ROLE_EMAIL
    users = User.objects.filter(username=username)

    dh_user_exists = False
    if len(users) > 0:
        dh_user_exists = True
    db_exists = DataHubManager.database_exists(username)
    db_role_exists = DataHubManager.user_exists(username)
    user_data_folder_exists = DataHubManager.user_data_folder_exists(username)

    # try to create the django user. Get the password from them
    password = None
    if not dh_user_exists:
        password = User.objects.create_user(username=username,
                                            email=email,
                                            password=None).password

    # try to create the db role
    if not db_role_exists:
        DataHubManager.create_user(username=username,
                                   password=password,
                                   create_db=False)

    # try to create the db
    if not db_exists:
        DataHubManager.create_user_database(username=username)

    # delete any user data folder that exists
    if user_data_folder_exists:
        DataHubManager.delete_user_data_folder(username)