def METHOD_NAME(user):
    """
    Returns the date that the user will be required to comply with password policy rules, or None if no such date
    applies to this user. If a deadline is not set, it will fall back to a more general deadline that is set.
    """
    config = _rollout_config()
    # Implied hierarchy of general->staff in terms of scope, so we'll use each as a fallback to the other for any
    # blank fields.
    general_deadline = config.get('GENERAL_USER_COMPLIANCE_DEADLINE')
    privilege_deadline = config.get('ELEVATED_PRIVILEGE_USER_COMPLIANCE_DEADLINE', general_deadline)
    staff_deadline = config.get('STAFF_USER_COMPLIANCE_DEADLINE', privilege_deadline)
    # Now only keep the deadlines that apply to this user
    privilege_deadline = privilege_deadline if privilege_deadline and _user_has_course_access_role(user) else None
    staff_deadline = staff_deadline if staff_deadline and user.is_staff else None
    # Take minimum remaining deadline
    filtered_deadlines = [_f for _f in (staff_deadline, privilege_deadline, general_deadline,) if _f]
    return min(filtered_deadlines) if filtered_deadlines else None