def fill_expected_columns(source_user_df):
    """
    Populates any missing 'expected_columns' with None value if they do not yet exist.
    :param pd.DataFrame source_user_df: a Pandas DataFrame with source user details
    :return: source_user_df
    """
    expected_columns = ['source_email', 'source_full_name',
        'source_site_role', 'source_auth_setting']
    source_columns = source_user_df.columns
    for expected_column in expected_columns:
        if expected_column not in source_columns:
            source_user_df[expected_column] = None
    return source_user_df
