uranusjr commented on a change in pull request #19294:
URL: https://github.com/apache/airflow/pull/19294#discussion_r741605290
##########
File path: airflow/api_connexion/endpoints/dag_run_endpoint.py
##########
@@ -211,7 +212,7 @@ def get_dag_runs_batch(session):
raise BadRequest(detail=str(err.messages))
appbuilder = current_app.appbuilder
- readable_dag_ids = appbuilder.sm.get_readable_dag_ids(g.user)
+ readable_dag_ids = {dag.dag_id for dag in
appbuilder.sm.get_readable_dags(g.user)}
query = session.query(DagRun)
if data.get("dag_ids"):
dag_ids = set(data["dag_ids"]) & set(readable_dag_ids)
Review comment:
```suggestion
dag_ids = set(data["dag_ids"]) & readable_dag_ids
```
Because `readable_dag_ids` is now already a set
Or
```suggestion
dag_ids = readable_dag_ids.intersection(data["dag_ids"])
```
##########
File path: airflow/www/fab_security/manager.py
##########
@@ -85,6 +85,33 @@ def _oauth_tokengetter(token=None):
return token
+class AnonymousUser(AnonymousUserMixin):
+ """User object used when no active user is logged in."""
+
+ _roles = set()
+ _perms = set()
+
+ @property
+ def roles(self):
+ if not self._roles:
+ public_role =
current_app.appbuilder.get_app.config["AUTH_ROLE_PUBLIC"]
+ self._roles = {current_app.appbuilder.sm.find_role(public_role)}
if public_role else set()
+ return self._roles
+
+ @roles.setter
+ def roles(self, roles):
+ self._roles = roles
+ self._perms = set()
+
+ @property
+ def perms(self):
+ if not self._perms:
+ self._perms = set()
+ for role in self.roles:
+ self._perms.update({(perm.action.name, perm.resource.name) for
perm in role.permissions})
Review comment:
```suggestion
self._perms = {
(perm.action.name, perm.resource.name)
for role in self.roles
for perm in role.permissions
}
```
Same for `User` below
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]