Tim Möhlmann
658ca3606b
feat(permissions): project member permission filter ( #9757 )
...
# Which Problems Are Solved
Add the possibility to filter project resources based on project member
roles.
# How the Problems Are Solved
Extend and refactor existing Pl/PgSQL functions to implement the
following:
- Solve O(n) complexity in returned resources IDs by returning a boolean
filter for instance level permissions.
- Individually permitted orgs are returned only if there was no instance
permission
- Individually permitted projects are returned only if there was no
instance permission
- Because of the multiple filter terms, use `INNER JOIN`s instead of
`WHERE` clauses.
# Additional Changes
- system permission function no longer query the organization view and
therefore can be `immutable`, giving big performance benefits for
frequently reused system users. (like our hosted login in Zitadel cloud)
- The permitted org and project functions are now defined as `stable`
because the don't modify on-disk data. This might give a small
performance gain
- The Pl/PgSQL functions are now tested using Go unit tests.
# Additional Context
- Depends on https://github.com/zitadel/zitadel/pull/9677
- Part of https://github.com/zitadel/zitadel/issues/9188
- Closes https://github.com/zitadel/zitadel/issues/9190
2025-04-22 08:42:59 +00:00
..
2025-04-02 16:53:06 +02:00
2025-02-13 16:03:05 +00:00
2024-10-07 12:49:55 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-02-11 18:45:09 +00:00
2025-02-11 18:45:09 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-03-31 12:45:11 +02:00
2025-04-02 16:53:06 +02:00
2024-12-06 11:32:53 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-02-28 10:55:54 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-09-11 08:24:00 +00:00
2024-09-11 08:24:00 +00:00
2024-09-11 08:24:00 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-04-16 11:19:17 +00:00
2024-05-04 11:55:57 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-22 08:42:59 +00:00
2025-04-02 16:53:06 +02:00
2024-12-04 18:10:10 +00:00
2024-09-25 21:40:21 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-02-17 19:25:46 +01:00
2025-04-02 16:53:06 +02:00
2025-02-17 19:25:46 +01:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-10-04 13:15:41 +00:00
2024-09-17 11:34:14 +00:00
2025-04-02 16:53:06 +02:00
2024-09-17 11:34:14 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2023-11-20 17:21:08 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2022-06-14 07:51:00 +02:00
2025-01-15 09:40:30 +01:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-12-19 10:37:46 +01:00
2025-04-02 16:53:06 +02:00
2024-12-19 10:37:46 +01:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-22 08:42:59 +00:00
2024-11-21 08:05:03 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-22 08:42:59 +00:00
2025-04-22 08:42:59 +00:00
2025-04-22 08:42:59 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-01-25 17:28:20 +01:00
2025-04-22 08:42:59 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-02-13 16:03:05 +00:00
2025-04-02 16:53:06 +02:00
2025-02-13 16:03:05 +00:00
2025-01-29 15:22:22 +02:00
2025-01-29 15:22:22 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-22 08:42:59 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-01-16 10:09:15 +00:00
2025-04-02 16:53:06 +02:00
2025-01-16 10:09:15 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-11-28 10:06:52 +00:00
2024-11-28 10:06:52 +00:00
2025-04-02 16:53:06 +02:00
2025-03-28 12:36:05 +00:00
2025-04-22 08:42:59 +00:00
2025-01-30 16:43:13 +01:00
2025-01-29 15:12:31 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-01-29 15:12:31 +00:00
2025-01-29 15:12:31 +00:00
2023-12-08 15:30:55 +01:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2024-08-28 19:46:45 +00:00
2025-04-02 16:53:06 +02:00
2025-04-02 16:53:06 +02:00
2025-04-22 08:42:59 +00:00
2025-01-29 15:12:31 +00:00
2024-04-09 15:15:35 +02:00
2025-04-02 16:53:06 +02:00
2024-06-14 10:00:43 +02:00
2024-08-16 11:41:09 +00:00
2024-08-16 11:41:09 +00:00
2024-08-14 14:18:14 +00:00
2024-08-16 11:41:09 +00:00
2025-04-02 16:53:06 +02:00
2024-08-14 14:18:14 +00:00
2023-11-20 17:21:08 +02:00