<!--
Welcome to Apache Airflow!

Please complete the next sections or the issue will be closed.
-->

**Apache Airflow version**: 2.0.2 and 2.1.1

<!-- AIRFLOW VERSION IS MANDATORY -->

**OS**: Debian

<!-- MANDATORY! You can get it via `cat /etc/oss-release` for example -->

**Apache Airflow Provider versions**: 
apache-airflow-providers-ftp==2.0.0
apache-airflow-providers-imap==2.0.0
apache-airflow-providers-sqlite==2.0.0

<!-- You can use `pip freeze | grep apache-airflow-providers` (you can leave only relevant ones)-->

**Deployment**: docker-compose

<!-- e.g. Virtualenv / VM / Docker-compose / K8S / Helm Chart / Managed Airflow Service -->

<!-- Please include your deployment tools and versions: docker-compose, k8s, helm, etc -->

**What happened**:

<!-- Please include exact error messages if you can -->

**What you expected to happen**:

Permissions for subdags should get listed on list roles on Airflow UI but only the parent dag get listed but not the children dags.

<!-- What do you think went wrong? -->

**How to reproduce it**:

Run airflow 2.0.2 or 2.1.1 with a subdag in the dags directory. And then try to find subdag listing on list roles on Airflow UI.

![subdag_not_listed](https://user-images.githubusercontent.com/9834450/129717365-9620895e-9876-4ac2-8adb-fc448183a78b.png)


<!--
As minimally and precisely as possible. Keep in mind we do not have access to your cluster or dags.
If this is a UI bug, please provide a screenshot of the bug or a link to a youtube video of the bug in action
You can include images/screen-casts etc. by drag-dropping the image here.
-->

**Anything else we need to know**:
It appears this problem is there most of the time.
<!--
How often does this problem occur? Once? Every time etc?
Any relevant logs to include? Put them here inside fenced
``` ``` blocks or inside a foldable details tag if it's long:
<details><summary>x.log</summary> lots of stuff </details>
-->

<!---
This is absolutely not required, but we are happy to guide you in contribution process
especially if you already have a good understanding of how to implement the fix.
Airflow is a community-managed project and we love to bring new contributors in.
Find us in #airflow-how-to-pr on Slack!
 -->

tests/www/test_security.py
test_security_manager = MockSecurityManager(appbuilder=self.appbuilder)
        assert len(test_security_manager.VIEWER_VMS) == 1
        assert test_security_manager.VIEWER_VMS == {'Airflow'}
    def test_correct_roles_have_perms_to_read_config(self):
        roles_to_check = self.security_manager.get_all_roles()
        assert len(roles_to_check) >= 5
        for role in roles_to_check:
            if role.name in ["Admin", "Op"]:
                assert self.security_manager.exist_permission_on_roles(
                    permissions.RESOURCE_CONFIG, permissions.ACTION_CAN_READ, [role.id]
                )
            else:
                assert not self.security_manager.exist_permission_on_roles(
                    permissions.RESOURCE_CONFIG, permissions.ACTION_CAN_READ, [role.id]
                ), (
                    f"{role.name} should not have {permissions.ACTION_CAN_READ} "
                    f"on {permissions.RESOURCE_CONFIG}"
                )
    @mock.patch("airflow.www.security.DagBag")
    def test_create_dag_specific_permissions(self, dagbag_mock):
        access_control = {'Public': {permissions.ACTION_CAN_READ}}
        dags = [
            DAG('has_access_control', access_control=access_control),
            DAG('no_access_control'),
        ]
        collect_dags_from_db_mock = mock.Mock()
        dagbag = mock.Mock()
        dagbag.dags = {dag.dag_id: dag for dag in dags}
        dagbag.collect_dags_from_db = collect_dags_from_db_mock