### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

I was changing the roles to remove all delete access. But as soon as I remove permission "Can Delete on Task Instances" clear task takes to a blank page.

Shouldn't clear task access work without Delete access?

### What you think should happen instead

Can Delete Task Instance should not affect clear task access.

### How to reproduce

Copy the Op role and remove all Can Delete and assign that role to a user.
That user will not be able to clear task instance now.
add "Can Delete on Task Instances" permission to the role and user will now have access to clear task instances page.

### Operating System

Redhat 8

### Versions of Apache Airflow Providers

2.6.1 

### Deployment

Docker-Compose

### Deployment details

airflow 2.6.1 running on Docker with postgres 13 and pgbouncer.

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""Iterate through provider-backed connection fields.
        Note that this cannot be a property (including a cached property)
        because Flask-Appbuilder attempts to access all members on startup, and
        using a property would initialize the providers manager too eagerly.
        Returns tuple of:
        * key
        * field_name
        * whether the field is sensitive
        """
        return (
            (k, v.field_name, v.is_sensitive) for k, v in ProvidersManager().connection_form_widgets.items()
        )
    @property
    def add_columns(self) -> list[str]:
        """A list of columns to show in the Add form.
        This dynamically calculates additional fields from providers and add
        them to the backing list. This calculation is done exactly once (by
        checking we're referencing the class-level variable instead of the
        instance-level), and only after we enter the request context (to skip
        superfuluous checks done by Flask-Appbuilder on startup).
        """
        if self._add_columns is type(self)._add_columns and has_request_context():
            self._add_columns = [
                *self._add_columns,
                *(k for k, _, _ in self._iter_extra_field_names_and_sensitivity()),
            ]
        return self._add_columns
    @property
    def edit_columns(self) -> list[str]: