### Apache Airflow version

2.2.0b2 (beta snapshot)

### Operating System

Debian buster

### Versions of Apache Airflow Providers

_No response_

### Deployment

Astronomer

### Deployment details

Astro dev start

### What happened

Unable to change username while updating user information through API though it's possible from UI.

### What you expected to happen

Either username should not be editable from UI or It should be editable from API.

### How to reproduce

1. Use a patch request with the below URL.
`{{url}}/users/{{username}}`
2. In payload use a different username
```
 {
        "username": "{{username1}}",
        "password": "password1",
        "email": "{{email}}@example.com",
        "first_name": "{{$randomFirstName}}",
        "last_name": "{{$randomLastName}}",
        "roles":[{ "name": "Op"}]
}
```


### 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)

airflow/api_connexion/endpoints/user_endpoint.py
"""Get a user"""
    ab_security_manager = current_app.appbuilder.sm
    user = ab_security_manager.find_user(username=username)
    if not user:
        raise NotFound(title="User not found", detail=f"The User with username `{username}` was not found")
    return user_collection_item_schema.dump(user)
@security.requires_access([(permissions.ACTION_CAN_READ, permissions.RESOURCE_USER)])
@format_parameters({'limit': check_limit})
def get_users(limit, order_by='id', offset=None):
    """Get users"""
    appbuilder = current_app.appbuilder
    session = appbuilder.get_session
    total_entries = session.query(func.count(User.id)).scalar()
    to_replace = {"user_id": "id"}
    allowed_filter_attrs = [
        "user_id",
        'id',
        "first_name",
        "last_name",
        "user_name",
        "email",
        "is_active",
        "role",
    ]
    query = session.query(User)
    query = apply_sorting(query, order_by, to_replace, allowed_filter_attrs)
    users = query.offset(offset).limit(limit).all()
    return user_collection_schema.dump(UserCollection(users=users, total_entries=total_entries))
@security.requires_access([(permissions.ACTION_CAN_CREATE, permissions.RESOURCE_USER)])
def post_user():