### 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
if not user:
        detail = f"Failed to add user `{username}`."
        return Unknown(detail=detail)
    return user_schema.dump(user)
@security.requires_access([(permissions.ACTION_CAN_EDIT, permissions.RESOURCE_USER)])
def patch_user(username, update_mask=None):
    """Update a role"""
    try:
        data = user_schema.load(request.json)
    except ValidationError as e:
        raise BadRequest(detail=str(e.messages))
    security_manager = current_app.appbuilder.sm
    user = security_manager.find_user(username=username)
    if user is None:
        detail = f"The User with username `{username}` was not found"
        raise NotFound(title="User not found", detail=detail)
    
    
    if update_mask is not None:
        masked_data = {}
        missing_mask_names = []
        for field in update_mask:
            field = field.strip()
            try:
                masked_data[field] = data[field]
            except KeyError:
                missing_mask_names.append(field)
        if missing_mask_names:
            detail = f"Unknown update masks: {', '.join(repr(n) for n in missing_mask_names)}"
            raise BadRequest(detail=detail)