def create_anonymous_user(apps, schema_editor): # Create anonymous user username = settings.ANONYMOUS_ROLE email = settings.ANONYMOUS_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) # delete any db that exists if db_exists: DataHubManager.remove_database(repo_base=username, revoke_collaborators=False) # delete any user data folder that exists if user_data_folder_exists: DataHubManager.delete_user_data_folder(username)
def create_oauth2_user(apps, schema_editor): """ Create a user to own default oauth2 applications. This user has a django account, but not a database role/db, or data folder. """ username = OAUTH2_APP_OWNER users = User.objects.filter(username=username) dh_user_exists = bool(len(users) > 0) 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. This skips validation, so the password # and email may as well be none. if not dh_user_exists: User.objects.create_user(username=username, email=None, password=None) print_if_not_testing('...django user created') # delete any db that exists if db_exists: DataHubManager.remove_database(repo_base=username, revoke_collaborators=True) print_if_not_testing('...db removed') # delete any db role that exists if db_role_exists: DataHubManager.remove_user(username, remove_db=False, ignore_missing_user=False) print_if_not_testing('...db role removed') # delete any user data folder that exists if user_data_folder_exists: DataHubManager.delete_user_data_folder(username) print_if_not_testing('...data folder removed') print_if_not_testing('...success.')
def create_oauth2_user(apps, schema_editor): """ Create a user to own default oauth2 applications. This user has a django account, but not a database role/db, or data folder. """ username = OAUTH2_APP_OWNER users = User.objects.filter(username=username) dh_user_exists = bool(len(users) > 0) 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. This skips validation, so the password # and email may as well be none. if not dh_user_exists: User.objects.create_user( username=username, email=None, password=None) print_if_not_testing('...django user created') # delete any db that exists if db_exists: DataHubManager.remove_database( repo_base=username, revoke_collaborators=True) print_if_not_testing('...db removed') # delete any db role that exists if db_role_exists: DataHubManager.remove_user(username, remove_db=False, ignore_missing_user=False) print_if_not_testing('...db role removed') # delete any user data folder that exists if user_data_folder_exists: DataHubManager.delete_user_data_folder(username) print_if_not_testing('...data folder removed') print_if_not_testing('...success.')