class_docstr: Flask-AppBuilder auth manager.
  
  This auth manager is responsible for providing a backward compatible user management experience to users.
code: def get_permitted_dag_ids(
      self,
      *,
      methods: Container[ResourceMethod] | None = None,
      user=None,
      session: Session = NEW_SESSION,
  ) -> set[str]:
      if not methods:
          methods = ["PUT", "GET"]
  
      if not user:
          user = self.get_user()
  
      if not self.is_logged_in():
          roles = user.roles
      else:
          if (
              "GET" in methods
              and self.is_authorized_dag(method="GET", user=user)
          ) or (
              "PUT" in methods
              and self.is_authorized_dag(method="PUT", user=user)
          ):
              # If user is authorized to read/edit all DAGs, return all DAGs
              return {
                  dag.dag_id
                  for dag in session.execute(select(DagModel.dag_id))
              }
          user_query = session.scalar(
              select(User)
              .options(
                  joinedload(User.roles)
                  .subqueryload(Role.permissions)
                  .options(
                      joinedload(Permission.action),
                      joinedload(Permission.resource),
                  )
              )
              .where(User.id == user.id)
          )
          roles = user_query.roles
  
      map_fab_action_name_to_method_name = (
          get_method_from_fab_action_map()
      )
      resources = set()
      for role in roles:
          for permission in role.permissions:
              action = permission.action.name
              if (
                  action in map_fab_action_name_to_method_name
                  and map_fab_action_name_to_method_name[action]
                  in methods
              ):
                  resource = permission.resource.name
                  if resource == permissions.RESOURCE_DAG:
                      return {
                          dag.dag_id
                          for dag in session.execute(
                              select(DagModel.dag_id)
                          )
                      }
                  if resource.startswith(
                      permissions.RESOURCE_DAG_PREFIX
                  ):
                      resources.add(
                          resource[
                              len(permissions.RESOURCE_DAG_PREFIX) :
                          ]
                      )
                  else:
                      resources.add(resource)
      return {
          dag.dag_id
          for dag in session.execute(
              select(DagModel.dag_id).where(
                  DagModel.dag_id.in_(resources)
              )
          )
      }
  
imports: from __future__ import annotations
  import argparse
  from functools import cached_property
  from pathlib import Path
  from typing import TYPE_CHECKING, Container
  from connexion import FlaskApi
  from flask import Blueprint, url_for
  from sqlalchemy import select
  from sqlalchemy.orm import Session, joinedload
  from airflow.auth.managers.base_auth_manager import BaseAuthManager, ResourceMethod
  from airflow.auth.managers.models.resource_details import AccessView, ConfigurationDetails, ConnectionDetails, DagAccessEntity, DagDetails, DatasetDetails, PoolDetails, VariableDetails
  from airflow.auth.managers.utils.fab import get_fab_action_from_method_map, get_method_from_fab_action_map
  from airflow.cli.cli_config import DefaultHelpParser, GroupCommand
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException
  from airflow.models import DagModel
  from airflow.providers.fab.auth_manager.cli_commands.definition import ROLES_COMMANDS, SYNC_PERM_COMMAND, USERS_COMMANDS
  from airflow.providers.fab.auth_manager.models import Permission, Role, User
  from airflow.security import permissions
  from airflow.security.permissions import ACTION_CAN_ACCESS_MENU, ACTION_CAN_READ, RESOURCE_AUDIT_LOG, RESOURCE_CLUSTER_ACTIVITY, RESOURCE_CONFIG, RESOURCE_CONNECTION, RESOURCE_DAG, RESOURCE_DAG_CODE, RESOURCE_DAG_DEPENDENCIES, RESOURCE_DAG_PREFIX, RESOURCE_DAG_RUN, RESOURCE_DAG_WARNING, RESOURCE_DATASET, RESOURCE_DOCS, RESOURCE_IMPORT_ERROR, RESOURCE_JOB, RESOURCE_PLUGIN, RESOURCE_POOL, RESOURCE_PROVIDER, RESOURCE_SLA_MISS, RESOURCE_TASK_INSTANCE, RESOURCE_TASK_LOG, RESOURCE_TASK_RESCHEDULE, RESOURCE_TRIGGER, RESOURCE_VARIABLE, RESOURCE_WEBSITE, RESOURCE_XCOM
  from airflow.utils.session import NEW_SESSION, provide_session
  from airflow.utils.yaml import safe_load
  from airflow.www.extensions.init_views import _CustomErrorRequestBodyValidator, _LazyResolver
label_desc: Use image node_id 15 for calling the FabAuthManager obj's underlying member method code with example usage: obj.get_permitted_dag_ids() and returns: unknown, unknown, unknown