Issue:
Bug: refactor(permissions): Give access to connector view group in operation groups



Currently `connector_label` is not visible in payments page of control-center. This is because, the payment retrieve API doesn't send the `connector_label`. As it is a big change in the payments flow, we are providing access to connector list API, so that control-center can fetch the data from there.

Pull request description:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [ ] Enhancement
- [x] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->
This PR will make connector_view group accessible by operation groups.

This PR will also change the permission of connector_retrieve API from connector_read to connector_write as it contains sensitive data.



### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless it is an obvious bug or documentation fix
that will have little conversation).
-->
Closes #6788.

## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->
```
curl 'http://localhost:8080/account/merchant_1733829021/profile/connectors' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: login_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMzgyMWViZTktNGVkZS00Y2Y5LTlkNDQtNDgzZGFjMTM2ODEzIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzMzODI5MDIxIiwicm9sZV9pZCI6InJvbGVfRHZDdGFtenBGanZPdW9oSVpEMUEiLCJleHAiOjE3MzQwMDgzODEsIm9yZ19pZCI6Im9yZ19FWnZWZFJ6NVRxT1FxaWJzUERRZSIsInByb2ZpbGVfaWQiOiJwcm9fN2x3clIwWVVUbU1hbzhpWHJSVEkiLCJ0ZW5hbnRfaWQiOiJwdWJsaWMifQ.GvNXaj3YAwfPYQhoR7EeC-PpQmocZ_y8G02fdN_DuQU' \
```
The above API should be accessible by users who are in only `operations_view` group.

```
curl 'http://localhost:8080/account/merchant_1733829021/connectors/mca_NEyNsfAyBFqewjPVz7sY' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: login_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNjA0N2I5NGYtYjlmYi00MGY4LWI1NWUtODcwMDdhZDc2M2ZhIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzMzODI5MDIxIiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTczNDAwODcyOCwib3JnX2lkIjoib3JnX0VadlZkUno1VHFPUXFpYnNQRFFlIiwicHJvZmlsZV9pZCI6InByb183bHdyUjBZVVRtTWFvOGlYclJUSSIsInRlbmFudF9pZCI6InB1YmxpYyJ9.GMuhFhjCvP_3aM8IEHuKXH3la3uRgtCU3Q_zVVpEOyQ' \
```
The above API should not be accessible by users who are not in `connector_manage` group.
## Checklist
<!-- Put an `x` in the boxes that apply -->

- [x] I formatted the code `cargo +nightly fmt --all`
- [x] I addressed lints thrown by `cargo clippy`
- [x] I reviewed the submitted code
- [ ] I added unit tests for my changes where possible


Testing:

```
curl 'http://localhost:8080/account/merchant_1733829021/profile/connectors' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: login_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMzgyMWViZTktNGVkZS00Y2Y5LTlkNDQtNDgzZGFjMTM2ODEzIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzMzODI5MDIxIiwicm9sZV9pZCI6InJvbGVfRHZDdGFtenBGanZPdW9oSVpEMUEiLCJleHAiOjE3MzQwMDgzODEsIm9yZ19pZCI6Im9yZ19FWnZWZFJ6NVRxT1FxaWJzUERRZSIsInByb2ZpbGVfaWQiOiJwcm9fN2x3clIwWVVUbU1hbzhpWHJSVEkiLCJ0ZW5hbnRfaWQiOiJwdWJsaWMifQ.GvNXaj3YAwfPYQhoR7EeC-PpQmocZ_y8G02fdN_DuQU' \
```
The above API should be accessible by users who are in only `operations_view` group.

```
curl 'http://localhost:8080/account/merchant_1733829021/connectors/mca_NEyNsfAyBFqewjPVz7sY' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: login_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiNjA0N2I5NGYtYjlmYi00MGY4LWI1NWUtODcwMDdhZDc2M2ZhIiwibWVyY2hhbnRfaWQiOiJtZXJjaGFudF8xNzMzODI5MDIxIiwicm9sZV9pZCI6Im9yZ19hZG1pbiIsImV4cCI6MTczNDAwODcyOCwib3JnX2lkIjoib3JnX0VadlZkUno1VHFPUXFpYnNQRFFlIiwicHJvZmlsZV9pZCI6InByb183bHdyUjBZVVRtTWFvOGlYclJUSSIsInRlbmFudF9pZCI6InB1YmxpYyJ9.GMuhFhjCvP_3aM8IEHuKXH3la3uRgtCU3Q_zVVpEOyQ' \
```
The above API should not be accessible by users who are not in `connector_manage` group.

Patch:
diff --git a/crates/router/src/routes/admin.rs b/crates/router/src/routes/admin.rs
index 80d22ad22bf..a57fd56e6c8 100644
--- a/crates/router/src/routes/admin.rs
+++ b/crates/router/src/routes/admin.rs
@@ -431,7 +431,10 @@ pub async fn connector_retrieve(
             &auth::AdminApiAuthWithMerchantIdFromHeader,
             &auth::JWTAuthMerchantFromRoute {
                 merchant_id,
-                required_permission: Permission::ProfileConnectorRead,
+                // This should ideally be ProfileConnectorRead, but since this API responds with
+                // sensitive data, keeping this as ProfileConnectorWrite
+                // TODO: Convert this to ProfileConnectorRead once data is masked.
+                required_permission: Permission::ProfileConnectorWrite,
             },
             req.headers(),
         ),
diff --git a/crates/router/src/services/authorization/permission_groups.rs b/crates/router/src/services/authorization/permission_groups.rs
index 8c45210e4b5..0cdb68ec8d7 100644
--- a/crates/router/src/services/authorization/permission_groups.rs
+++ b/crates/router/src/services/authorization/permission_groups.rs
@@ -60,8 +60,12 @@ impl PermissionGroupExt for PermissionGroup {
 
     fn accessible_groups(&self) -> Vec<Self> {
         match self {
-            Self::OperationsView => vec![Self::OperationsView],
-            Self::OperationsManage => vec![Self::OperationsView, Self::OperationsManage],
+            Self::OperationsView => vec![Self::OperationsView, Self::ConnectorsView],
+            Self::OperationsManage => vec![
+                Self::OperationsView,
+                Self::OperationsManage,
+                Self::ConnectorsView,
+            ],
 
             Self::ConnectorsView => vec![Self::ConnectorsView],
             Self::ConnectorsManage => vec![Self::ConnectorsView, Self::ConnectorsManage],