oncall-engine/engine/apps/user_management
Joey Orlando 04ab676463
feat: update RBAC permissioning to support grafana-irm-app (#5149)
# What this PR does

Closes https://github.com/grafana/irm/issues/31 (and supersedes
https://github.com/grafana/oncall/pull/4784)

Main changes:
- updates `apps.api.permissions.user_is_authorized` to check the value
of `organization.is_grafana_irm_enabled`. If it is, we check for the
presence of `grafana-irm-app` prefixed RBAC permissions rather than
`grafana-oncall-app`
- cleans-up `engine/apps/api/tests/test_permissions.py` (bulk of the
changes in the PR)
- converts `apps.user_management.models.User.build_permissions_query` to
a `UserQuerySet` method instead
  - means we can now do things like this instead:
  ```python3

User.objects.filter_by_permission(RBACPermission.Permissions.NOTIFICATIONS_READ,
organization)
  ```

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] Added the relevant release notes label (see labels prefixed w/
`release:`). These labels dictate how your PR will
    show up in the autogenerated release notes.
2024-10-10 19:02:21 +00:00
..
migrations update URLs constructed by the backend to support IRM plugin (#5137) 2024-10-09 08:55:10 -04:00
models feat: update RBAC permissioning to support grafana-irm-app (#5149) 2024-10-10 19:02:21 +00:00
subscription_strategy Speed up send email notification task (#3713) 2024-01-18 13:54:18 +00:00
tests feat: update RBAC permissioning to support grafana-irm-app (#5149) 2024-10-10 19:02:21 +00:00
__init__.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
apps.py Update ical event/user email matching to be case-insensitive 2022-10-20 16:12:41 -03:00
constants.py Google OAuth2 flow + fetch Google Calendar OOO events (#4067) 2024-04-02 14:59:03 -04:00
exceptions.py Org soft-delete (#1073) 2023-01-05 12:42:55 +08:00
middlewares.py Handle Amazon SNS headers for moved (#3371) 2023-11-16 13:44:56 -07:00
signals.py add several new database columns + emit two new Django signals (#1522) 2023-04-14 09:15:57 +02:00
sync.py Make sure organization token is valid before sync (#4904) 2024-08-22 17:49:22 +00:00
types.py Google OAuth2 flow + fetch Google Calendar OOO events (#4067) 2024-04-02 14:59:03 -04:00
user_representative.py apps.get_model -> import (#2619) 2023-07-25 09:43:23 +00:00