Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion airflow-core/src/airflow/models/dag.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,6 @@
from airflow.sdk.definitions.asset import Asset, AssetAlias, AssetUniqueKey, BaseAsset
from airflow.sdk.definitions.dag import DAG as TaskSDKDag, dag as task_sdk_dag_decorator
from airflow.secrets.local_filesystem import LocalFilesystemBackend
from airflow.security import permissions
from airflow.settings import json
from airflow.stats import Stats
from airflow.timetables.base import DagRunInfo, DataInterval, TimeRestriction, Timetable
Expand Down Expand Up @@ -468,6 +467,7 @@ def _upgrade_outdated_dag_access_control(access_control=None):
return None

from airflow.providers.fab import __version__ as FAB_VERSION
from airflow.providers.fab.www.security import permissions

updated_access_control = {}
for role, perms in access_control.items():
Expand Down
116 changes: 0 additions & 116 deletions airflow-core/src/airflow/security/permissions.py

This file was deleted.

2 changes: 1 addition & 1 deletion airflow-core/tests/unit/models/test_dag.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
from airflow.models.dagrun import DagRun
from airflow.models.serialized_dag import SerializedDagModel
from airflow.models.taskinstance import TaskInstance as TI
from airflow.providers.fab.www.security import permissions
from airflow.providers.standard.operators.bash import BashOperator
from airflow.providers.standard.operators.empty import EmptyOperator
from airflow.providers.standard.operators.python import PythonOperator
Expand All @@ -68,7 +69,6 @@
from airflow.sdk.definitions._internal.templater import NativeEnvironment, SandboxedEnvironment
from airflow.sdk.definitions.asset import Asset, AssetAlias, AssetAll, AssetAny
from airflow.sdk.definitions.param import Param
from airflow.security import permissions
from airflow.timetables.base import DagRunInfo, DataInterval, TimeRestriction, Timetable
from airflow.timetables.simple import (
AssetTriggeredTimetable,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@
from airflow.models.mappedoperator import MappedOperator
from airflow.models.xcom import XComModel
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
from airflow.providers.fab.www.security import permissions
from airflow.providers.standard.operators.bash import BashOperator
from airflow.providers.standard.sensors.bash import BashSensor
from airflow.sdk import AssetAlias, teardown
from airflow.sdk.bases.decorator import DecoratedOperator
from airflow.sdk.definitions._internal.expandinput import EXPAND_INPUT_EMPTY
from airflow.sdk.definitions.asset import Asset, AssetUniqueKey
from airflow.sdk.definitions.param import Param, ParamsDict
from airflow.security import permissions
from airflow.serialization.enums import Encoding
from airflow.serialization.json_schema import load_dag_schema_dict
from airflow.serialization.serialized_objects import (
Expand Down
6 changes: 5 additions & 1 deletion devel-common/src/tests_common/test_utils/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
from airflow.models.dagcode import DagCode
from airflow.models.dagwarning import DagWarning
from airflow.models.serialized_dag import SerializedDagModel
from airflow.security.permissions import RESOURCE_DAG_PREFIX
from airflow.utils.db import add_default_pool_if_not_exists, create_default_connections, reflect_tables
from airflow.utils.session import create_session

Expand Down Expand Up @@ -323,6 +322,11 @@ def clear_dag_specific_permissions():
)
else:
raise
try:
from airflow.providers.fab.www.security.permissions import RESOURCE_DAG_PREFIX
except ImportError:
from airflow.security.permissions import RESOURCE_DAG_PREFIX

with create_session() as session:
dag_resources = session.query(Resource).filter(Resource.name.like(f"{RESOURCE_DAG_PREFIX}%")).all()
dag_resource_ids = [d.id for d in dag_resources]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,26 @@
# under the License.
from __future__ import annotations

from typing import TYPE_CHECKING
from providers.common.compat.src.airflow.providers.common.compat.version_compat import AIRFLOW_V_3_0_PLUS

if TYPE_CHECKING:
from airflow.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_BACKFILL,
RESOURCE_DAG_VERSION,
)
# This module is probably only needed for the combination of fab provider 1.5 and airflow 2.x
# It was used during the small window of time when fab provider was based off of main
# after main was version 3 dev and so it was sorta straddling the two versions.
# At that time datasets were renamed assets, but fab provider was still trying to be
# compatible with Airflow 2.x.
# Probably we should not have put this stuff in here but hey.

if AIRFLOW_V_3_0_PLUS:
# it is not expected that this block would ever be reached
# because only fab provider 2+ is compatible with airflow 3+
# and fab provider 2+ should use the permissions module in the fab provider
# but we throw it in here just in case.
RESOURCE_ASSET = "Datasets"
else:
try:
from airflow.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_BACKFILL,
RESOURCE_DAG_VERSION,
)
except ImportError:
from airflow.security.permissions import RESOURCE_DATASET as RESOURCE_ASSET
RESOURCE_ASSET = "Assets"
RESOURCE_ASSET_ALIAS = "Asset Aliases"
RESOURCE_BACKFILL = "Backfills"
RESOURCE_DAG_VERSION = "DAG Versions"


__all__ = ["RESOURCE_ASSET", "RESOURCE_ASSET_ALIAS", "RESOURCE_BACKFILL", "RESOURCE_DAG_VERSION"]
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
from airflow.providers.fab.www.security import permissions
from airflow.providers.fab.www.security.permissions import (
RESOURCE_AUDIT_LOG,
RESOURCE_BACKFILL,
RESOURCE_CLUSTER_ACTIVITY,
RESOURCE_CONFIG,
RESOURCE_CONNECTION,
Expand Down Expand Up @@ -97,7 +98,6 @@
get_fab_action_from_method_map,
get_method_from_fab_action_map,
)
from airflow.security.permissions import RESOURCE_BACKFILL
from airflow.utils.session import NEW_SESSION, create_session, provide_session
from airflow.utils.yaml import safe_load

Expand All @@ -116,7 +116,7 @@
RESOURCE_ASSET_ALIAS,
)
else:
from airflow.providers.common.compat.security.permissions import (
from airflow.providers.fab.www.security.permissions import (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The if branch and else branch are then the same (for this import), we can move it out from if TYPE_CHECKING: and add it to the list of line 70

RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,20 +99,20 @@
)
from airflow.providers.fab.auth_manager.views.user_stats import CustomUserStatsChartView
from airflow.providers.fab.www.security import permissions
from airflow.providers.fab.www.security.permissions import RESOURCE_BACKFILL
from airflow.providers.fab.www.security_manager import AirflowSecurityManagerV2
from airflow.providers.fab.www.session import (
AirflowDatabaseSessionInterface,
AirflowDatabaseSessionInterface as FabAirflowDatabaseSessionInterface,
)
from airflow.security.permissions import RESOURCE_BACKFILL

if TYPE_CHECKING:
from airflow.providers.fab.www.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
)
else:
from airflow.providers.common.compat.security.permissions import (
from airflow.providers.fab.www.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
)
Comment on lines 109 to 118
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,16 @@
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride

from airflow.providers.common.compat.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_BACKFILL,
)
from airflow.providers.fab.www.security.permissions import (
ACTION_CAN_ACCESS_MENU,
ACTION_CAN_CREATE,
ACTION_CAN_DELETE,
ACTION_CAN_EDIT,
ACTION_CAN_READ,
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_AUDIT_LOG,
RESOURCE_BACKFILL,
RESOURCE_CONFIG,
RESOURCE_CONNECTION,
RESOURCE_DAG,
Expand Down
4 changes: 2 additions & 2 deletions providers/fab/tests/unit/fab/auth_manager/test_security.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars
from unit.fab.auth_manager.utils import _resource_name

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
Expand All @@ -51,7 +52,6 @@
from tests_common.test_utils.asserts import assert_queries_count
from tests_common.test_utils.db import clear_db_dags, clear_db_runs
from tests_common.test_utils.mock_security_manager import MockSecurityManager
from tests_common.test_utils.permissions import _resource_name
from unit.fab.auth_manager.api_endpoints.api_connexion_utils import (
create_user,
create_user_scope,
Expand All @@ -67,7 +67,7 @@
RESOURCE_BACKFILL,
)
else:
from airflow.providers.common.compat.security.permissions import (
from airflow.providers.fab.www.security.permissions import (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant, no need to do if TYPE_CHECKING

RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_BACKFILL,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# under the License.
from __future__ import annotations

from airflow.security import permissions
from airflow.providers.fab.www.security import permissions


def _resource_name(dag_id: str, resource_name: str) -> str:
Expand Down
Loading