Commit Graph
91 Commits
Author SHA1 Message Date
Ieva 229f8b6e6d Support bundles: small UX improvements (#63277)
support bundle ux improvements
2023-02-11 08:31:03 +00:00
Ieva b3f9b62592 Support bundles: improve plugin collector (#63273)
improve plugin collector
2023-02-10 17:04:34 +00:00
Ieva 4570131fe5 Folders: simplify guardian permissions checks (#63183)
simplify code
2023-02-09 07:19:08 -05:00
Ieva 078639abcd RBAC: add folder UID scope resolver (#62695)
* add folder uid scope resolver

* undo guardian change, move it to a separate PR

* fix test + linting
2023-02-07 16:27:20 +00:00
Ieva b5ef9628e8 Folders: set org ID when converting from dash to a folder (#63045)
set org ID when converting from dash to a folder
2023-02-07 15:43:21 +00:00
Ieva 49ccae7489 RBAC: cascaded nested folder permissions for search v2 (#62608)
* fetch inherited folder scopes for search v2

* fix error and don't fetch parents for the general folder

* remove feature toggle check and lower log level
2023-02-06 17:38:15 +00:00
Ieva 6ae0ea80f6 RBAC: extend IsInherited method to work for nested folders (#62498)
* extend IsInherited function to work for nested folders

* add tests

* update tests and logic

* process inherited permissions seprately to correctly grey them out in the frontend
2023-01-31 17:38:03 +00:00
Ieva a46d62cf48 RBAC: only set basic role permissions for folders without parents (#62486)
only set basic role permissions for folders without parents
2023-01-31 12:13:26 +00:00
Ieva ee3d742c7d RBAC: inherit folder permissions when resolving managed permissions (#62244)
* add nested folder scope inheritance to managed permission services

* add a more specific erorr

* remove circular dependencies

* use errutil for returning erorr

* fix tests

* fix tests

* define a new error in ac package
2023-01-30 14:19:42 +00:00
Ieva 1865205d68 Benchmarks for searchv2 (#60730)
* bench-test

* cleanup

* more simplification

* fix tests

* correct wrong argument ordering & use constant

* fix issues with tests setup

* add benchmark results

* reuse Gabriel's concurrent setup code

* correct error logs for ac benchmarks
2023-01-27 15:42:08 +00:00
eb9ef34272 RBAC: Permission check performance improvements for the new search (#60729)
* Add checker and update the resource filter function for new search

* Add tests for checker

* small fixes

* handle location for panels correctly

* clean up checker code and extend the tests for it

* more fixes, but tests don't quite work yet

* a small change to return error

* cleanup

* more simplification

* fix tests

* correct wrong argument ordering & use constant

* Apply suggestions from code review

Co-authored-by: Artur Wierzbicki <artur.wierzbicki@grafana.com>

* import

* check general folder from permission checker function

* handle root folder aka general folder properly

* update tests

* clean up

* lint

* add fix from main

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: Artur Wierzbicki <artur.wierzbicki@grafana.com>
2023-01-27 12:12:30 +00:00
Ieva 5e1dc22f88 Chore: fix builds on main (#62218)
fix builds
2023-01-26 14:39:52 +00:00
Ieva 06350ed887 RBAC: remove the usage of access control mock from preference tests (#61709)
remove the usage of access control mock from preference tests
2023-01-19 14:43:00 +00:00
Ieva cd363cb037 RBAC: remove access control mock from org quota tests (#61574)
* remove ac mock from org quota tests

* fix incorrect expected status code and swap tests to make setup easier

* remove empty line
2023-01-17 10:33:01 +00:00
9a8c798bae Docs: add missing plugin roles, actions and scope (#61182)
* add missing plugin roles, actions and scope

* Update docs/sources/administration/roles-and-permissions/access-control/custom-role-actions-scopes/index.md

Co-authored-by: Alyssa Wada <101596687+alyssawada@users.noreply.github.com>

* Update docs/sources/administration/roles-and-permissions/access-control/custom-role-actions-scopes/index.md

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

Co-authored-by: Alyssa Wada <101596687+alyssawada@users.noreply.github.com>
Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2023-01-17 10:03:31 +00:00
Ieva f44bc0dd6b RBAC: use scope reduction for user permission listing (#61583)
use scope reduction for user permission listing
2023-01-17 09:58:40 +00:00
Ieva e543c10e25 RBAC: Remove RBAC mock from plugin installation tests (#61416)
remove ac mock from plugin installation tests
2023-01-13 09:34:20 +00:00
IevaandJoey Orlando bc75ee1392 Docs: OnCall role and action definitions (#61175)
* OnCall role and action definitions

* change verbs from write to update or edit

* Update docs/sources/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/index.md

Co-authored-by: Joey Orlando <joseph.t.orlando@gmail.com>
2023-01-12 08:40:19 -06:00
Ieva 37859668e6 Chore: update lockfile (#61381)
update lockfile
2023-01-12 14:31:59 +00:00
Ieva 9334582022 RBAC: move RBAC + OnCall feature toggle to beta state (#60991)
* move RBAC + OnCall feature toggle to beta state

* move accessControlOnCall to the correct section in the docs
2023-01-04 17:52:08 +01:00
IevaandGabriel MABILLE 6aa5a79cad Access control: endpoint for searching single user permissions (#59669)
* initial commit

* clean up

* fix a bug and add tests

* more tests

* undo some unintended changes

* undo some unintended changes

* linting

* PR feedback - add user ID to search options

* simplify the query

* Apply suggestions from code review

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* remove unneeded formatting changes

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-12-14 10:53:25 +00:00
Ieva a8bae3f0b0 Access Control: Clear user's permission cache after resource creation (#59101)
* refresh user's permission cache after resource creation

* clear the cache instead of reloading the permissions

* don't error if can't clear cache

* fix tests

* fix tests again
2022-11-24 14:38:55 +00:00
Ieva 5c1a1c8318 change json command parameter names from userID to userId and teamID to teamId (#57902) 2022-10-31 14:32:28 +00:00
Ieva 2546437e20 add an endpoint for updating several managed permissions with one call (#57893) 2022-10-31 11:46:58 +00:00
Ieva 7e62352aea Access Control: documentation for RBAC provisioning with Terraform (#57747)
* add docs for RBAC provisioning with Terraform

* remove unnecessary bit

* shuffle the structure around, as docs can't go more than four levels deep

* Update index.md

* Update index.md
2022-10-31 06:32:32 -04:00
Ieva 92531c5596 move data source permission model to enterprise repo (#57615) 2022-10-26 11:49:45 +01:00
Ieva 6f93630e97 RBAC: add check for whether a role is managed (#55617)
* add check for whether a role is managed

* fix typo
2022-09-22 15:00:42 +01:00
Ieva 6d5bdf12e8 resolve merge conflicts (#55503) 2022-09-20 13:31:08 -04:00
Ieva de6584b976 Auth: Extend auth token errors with user ID (#54633)
* add user ID to user token errors

* remove colon

* move user ID to debug log, so it wouldn't accidentally be added in response
2022-09-02 14:38:25 +01:00
Ieva b590c1c60f Access Control: Set permissions for Grafana's test data source (#53247)
* set permissions for Grafana's test data source

* linting
2022-08-05 10:19:50 +03:00
Ieva 610abc2af0 Access Control: Fix permission error during dashboard creation flow (#53214)
* remove permission check

* remove unneeded function
2022-08-03 16:39:20 +03:00
Ieva 67d817ff48 update versions (#53167) 2022-08-02 11:55:46 -04:00
Ieva 904d21dc93 update latest.json testing version (#53157) 2022-08-02 15:35:04 +00:00
Ieva 0d324e931d Access Control: Allow org admins to invite new users (#52894)
* allow org admins to invite new users to Grafana

* doc updates

* fix test
2022-07-27 17:37:27 +01:00
IevaandChristopher Moyer e947910910 Service accounts: update docs (#52734)
* update the docs

* Update docs/sources/administration/service-accounts/_index.md

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-07-26 09:44:12 +01:00
Ieva b3a10202d4 Revert "Service accounts: Add service account to teams" (#52710)
* Revert "Service accounts: Add service account to teams (#51536)"

This reverts commit 0f919671e7.

* remove unneeded line

* fix test
2022-07-26 09:43:29 +01:00
Ieva fc4fd47deb change managed permissions for service accounts (#52709) 2022-07-25 15:02:25 +01:00
Ieva f9ef7cac11 allow setting team managed permissions for service accounts (#52467) 2022-07-20 20:27:41 +02:00
Ieva f3baac581d Chore: update latest.json to 9.0.4 (#52550) 2022-07-20 13:21:59 -04:00
Ieva becd895244 display dashboard settings to users who are allowed to edit the dashboard (#52532) 2022-07-20 13:53:36 +00:00
Ieva ba76be174f Access control: Fix org user removal for OSS users (#52473)
* allow setting team managed permissions for service accounts

* Revert "allow setting team managed permissions for service accounts"

This reverts commit 7598626397.

* fix org user removal for OSS

* remove comment
2022-07-20 10:18:41 +01:00
Ieva 39025bb4cd add logs to debug failing migration (#52447) 2022-07-19 09:34:49 -04:00
Ieva ecdd4a184f fix dates (#52264) 2022-07-14 19:15:25 +01:00
IevaandEric Leijonmarck c851907fc3 Access Control: Fix missing folder permissions (#52153)
* add the migration

* Update pkg/services/sqlstore/migrations/accesscontrol/dashboard_permissions.go

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>

Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2022-07-14 12:01:21 -04:00
Ievaandjguer 0c33b9f211 Access control: Allow organisation admins to add existing users to org (#51668)
* check users with user add permission to access the invite endpoint

* undo unneeded changes

* tests and cleanup

* linting

* linting

* betterer

* betterer again

* fix prettier issue

Co-authored-by: jguer <joao.guerreiro@grafana.com>
2022-07-08 12:07:00 +01:00
Ievaandalexanderzobnin alexanderzobnin@gmail.com d85df0a560 Service Accounts: Managed permissions for service accounts (#51818)
* backend changes

* frontend changes

* linting

* nit

* import order

* allow SA creator to access the SA page

* fix merge

* tests

* fix frontend tests

Co-authored-by: alexanderzobnin alexanderzobnin@gmail.com
2022-07-08 05:53:18 -04:00
Ieva 1768e09cfd document auth_style option (#51697) 2022-07-04 14:22:19 +01:00
Ieva 75873d05d7 Access Control: Allow dashboard admins to query org users (#51652)
* allow dashboard admins to query org users

* rename one more variable
2022-07-04 10:43:06 +01:00
Ieva 31e8e17d2f allow specifying auth style (#51233) 2022-06-30 10:27:31 +01:00
Ieva 0c0cf36ab8 Access control: role checks before updates (#51449)
* add role checks

* linting
2022-06-27 12:40:12 -04:00
Ieva d4acc8b7d3 fix broken links (#51224) 2022-06-22 10:34:48 +03:00
Ieva 336c9fd513 doc fix (#50624) 2022-06-10 17:10:50 +02:00
Ievaandbrendamuir 7e59fd3ecf Docs: extend RBAC breaking changes (#50495)
* extend RBAC breaking changes

* Update docs/sources/whatsnew/whats-new-in-v9-0.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
2022-06-09 12:11:04 +02:00
IevaandSofia Papagiannaki 7c800421d3 RBAC: change migration logic (#50187)
* change migration logic

* linting

* linting

* fix an issue with the migration logic

* make tests runnable against other DBs

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2022-06-06 13:51:07 +02:00
Ieva 5dbea9996b RBAC: Make RBAC action names more consistent (#49730)
* update action names

* correctly retrieve teams for signed in user

* remove test

* undo swagger changes

* undo swagger changes pt2

* add migration from old action names to the new ones

* rename from list to read

* linting

* also update alertign actions

* fix migration
2022-06-02 13:14:48 +01:00
Ieva 8d313f54e2 Access control: fix a typo for folder actions (#49582)
* fix a typo for folder actions

* update dashboard action too
2022-05-25 13:11:35 +02:00
IevaandKarl Persson f256f625d8 AccessControl: Enable RBAC by default (#48813)
* Add RBAC section to settings

* Default to RBAC enabled settings to true

* Update tests to respect RBAC

Co-authored-by: Karl Persson <kalle.persson@grafana.com>
2022-05-16 12:45:41 +02:00
Ieva 6923b4c6c6 Dashboard: Fix dashboard update permission check (#48746)
* Change dash permission check for dashboards that are moved to a different folder
2022-05-09 12:01:03 +02:00
Ieva 3c78196d0b fix a bug (#48782) 2022-05-06 09:36:11 +01:00
Ieva a5672758d8 Access control: further reduce access control feature toggle checks (#48171)
* reduce the usage of access control flag further by removing it from SQL store methods

* fixing tests

* fix another test

* linting

* remove AC feature toggle use from API keys

* remove unneeded function
2022-05-05 17:31:14 +02:00
Ievaandachatterjee-grafana d828dc0904 Service accounts: doc fixes (#48518)
* some doc fixes

* Update docs/sources/administration/service-accounts/add-service-account-token.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/administration/service-accounts/add-service-account-token.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update create-service-account.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2022-04-29 15:50:09 +02:00
Ieva ea25f7e1ca fix argument ordering (#48124) 2022-04-25 15:26:46 +02:00
Ieva 68ca5b2e05 Access control: refactor RBAC checks (#48107)
* refactor RBAC checks

* fix a test

* another test fix

* and another
2022-04-25 10:42:09 +02:00
Ieva 1588cd393a check that the user has RBAC permissions to save dashboard annotation (#47882) 2022-04-20 09:43:42 +02:00
Ieva e50bd5cac8 Access control: expose SA frontend to users with the right permissions (#47727)
* expose frontend to users with permissions

* cover the ui endpoints

* fix permissions
2022-04-14 12:40:15 +01:00
Ievaandeleijonmarck a245531f0c Access control: service account role check (#47710)
* forbid setting role higher than user's role

* change response code

* can assign API key permissions to non-admin users

* add: assign viewer role directly upon creation

* refactor: add AddSATcommand infavor of AddAPIkey

* refactor: frontend fixes for ServiceAccountToken

Co-authored-by: eleijonmarck <eric.leijonmarck@gmail.com>
2022-04-13 18:11:03 +02:00
Ieva d0abe1bb3d Annotation FGAC checks for comments (#47468)
* typo

* remove unwanted change

* remove unwanted change
2022-04-12 17:30:50 +01:00
Ieva a5530d36a7 Access-control: documentation for general folder uid restrictions (#47567)
* add caveats for general folder

* expand the list of resources covered by fgac

* Update folder.md

remove unneeded comment
2022-04-12 12:12:18 +02:00
IevaandEzequiel Victorero ef4c2672b3 Access control: SQL filtering for annotation listing (#47467)
* pass in user to attribute scope resolver

* add SQL filter to annotation listing

* check annotation FGAC permissions before exposing them for commenting

* remove the requirement to be able to list all annotations from annotation listing endpoint

* adding tests for annotation listing

* remove changes that got moved to a different PR

* unused var

* Update pkg/services/sqlstore/annotation.go

Co-authored-by: Ezequiel Victorero <evictorero@gmail.com>

* remove unneeded check

* remove unneeded check

* undo accidental change

* undo accidental change

* doc update

* move tests

* redo the approach for passing the user in for scope resolution

* accidental change

* cleanup

* error handling

Co-authored-by: Ezequiel Victorero <evictorero@gmail.com>
2022-04-11 13:18:38 +01:00
Ieva bc9b5325a0 update docs, simplify actions and scopes (#47067) 2022-04-04 13:53:58 +01:00
IevaandEzequiel Victorero f2450575b3 Access control: FGAC for annotation updates (#46462)
* proposal

* PR feedback

* fix canSave bug

* update scope naming

* linting

* linting

Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
2022-03-18 17:33:21 +01:00
IevaandLeonard Gram 510c69ec91 Access control: allow hiding roles (#46358)
* allow hiding roles

* extend docs

* docs feedback

* extend provisioning docs

* formatting

Co-authored-by: Leonard Gram <leo@xlson.com>
2022-03-15 13:17:45 +00:00
Ievaandgamab 11433cba97 Team access changes for editors when editorsCanAdmin is enabled (#45405)
* filter teams for editors to only show the teams that they are members of

* frontend changes to only allow clicking on teams that the user can edit

* update frontend test snapshots

* extend docs

* reword

* remove the comment for now

* Update backend tests

* reword the warning, and add it back in

* docs feedback

Co-authored-by: gamab <gabi.mabs@gmail.com>
2022-02-15 17:09:03 +00:00
IevaandGabriel MABILLE 9ac4843df1 Documentation for teams with FGAC (#45321)
* docs for teams with FGAC

* Update docs/sources/enterprise/access-control/fine-grained-access-control-references.md

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2022-02-11 18:00:13 +01:00
Ievaandgamab 6fb3aac2e1 Access control: team UI improvements with FGAC (#45255)
* show teams page for user who can't list teams but can create teams

* Fixing buttons and routes

* Small refactor

Co-authored-by: gamab <gabi.mabs@gmail.com>
2022-02-11 09:58:37 +00:00
Ieva 9fafbfc87e add the permission to read org users to team creator (#45224) 2022-02-10 14:51:05 +00:00
Ieva 4f4b1cb5ea Access control: hide team role picker if user doesn't have access to it (#45068)
* hide team role column

* hide or disable the role picker as needed

* add SWL filtering for role listing
2022-02-08 16:38:13 +00:00
Ieva 602d62ebcc Access control: FGAC for team sync endpoints (#44673)
* add actions for team group sync

* extend the hook to allow specifying whether the user is external

* move user struct to type package

* interface for permission service to allow mocking it

* reuse existing permissions

* test fix

* refactor

* linting
2022-02-03 15:27:05 +00:00
Ieva 9247848a7b increment fixed role version (#44779) 2022-02-02 15:24:16 +00:00
Ieva a06564fb0d Access control: allow granting a fixed role dynamically based on the startup settings (#43867)
* allow granting a fixed role dynamically depending on startup config

* move role definition for team writing

* undo test changes

* nicer naming
2022-01-11 11:58:40 +01:00
Ievaandgamab 41b709d08d Access control: permissions for team creation (#43506)
* FGAC for team creation

* tests

* fix snapshot for UI tests

* linting

* update snapshots

* Remove unecessary class and update tests

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

* Make the condition slightly easier

Co-authored-by: ievaVasiljeva <ieva.vasiljeva@grafana.com>

Co-authored-by: gamab <gabi.mabs@gmail.com>
2022-01-10 17:05:53 +00:00
Ieva 2ef071e728 log provisioning errors (#43041) 2021-12-13 16:50:02 +01:00
Ieva 03b7a55242 show admin nav link it the user only has permissions to view licensing and not other pages under admin node (#41948) 2021-11-19 11:02:13 +00:00
Ievaandkay delaney 11f133b406 Access Control: use role groups in role picker (#41912)
* use role groups in role picker UI

* Update public/app/core/components/RolePicker/RolePickerMenu.tsx

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2021-11-19 08:52:16 +00:00
Ieva b7f47561b6 Access control: add roles to fixed groups (#41673)
* add roles to fixed groups

* add global to group name
2021-11-18 09:16:18 +00:00
Ieva c426f5673b Access control: allow using targetOrgId parameter to set organization ID for a request (#41761)
* read target org ID in context handler

* simplify test

* add test for request body not being read in ctx handler

* linting fix
2021-11-17 16:11:56 +01:00
Ieva ba7d65edf5 Revert "allow using targetOrgId parameter to set organisation ID for a request (#41561)" (#41643)
This reverts commit 08276225c1.
2021-11-12 14:23:16 +01:00
Ieva dcae138379 Access Control: adding group field to roles (#41465)
* add group field to roles in AC models

* change to using group_name as the column name

* add a migration for group column
2021-11-12 10:42:47 +00:00
Ieva 08276225c1 allow using targetOrgId parameter to set organisation ID for a request (#41561) 2021-11-11 16:39:08 +00:00
IevaandGabriel MABILLE 71c6d7285e AccessControl: document FGAC licensing permissions (#39192)
* document licensing permissions and roles

* Update docs/sources/enterprise/access-control/fine-grained-access-control-references.md

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* Update docs/sources/enterprise/access-control/permissions.md

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>

* update action name for "licensing.reports:read"

* put licensing editor role back in, more table formatting

Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com>
2021-10-05 18:35:01 +02:00
IevaandAlex Khomenko 52220b2470 AccessControl: frontend changes for adding FGAC to licensing (#39484)
* refactor licenseURL function to use context and export permission evaluation fction

* remove provisioning file

* refactor licenseURL to take in a bool to avoid circular dependencies

* remove function for appending nav link, as it was only used once and move the function to create admin node

* better argument names

* create a function for permission checking

* extend permission checking when displaying server stats

* enable the use of enterprise access control actions when evaluating permissions

* import ordering

* move licensing FGAC action definitions to models package to allow access from oss

* move evaluatePermissions for routes to context serve

* change permission evaluator to take in more permissions

* move licensing FGAC actions again to appease wire

* avoid index out of bounds issue in case no children are passed in when creating server admin node

* simplify syntax for permission checking

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

* update loading state for server stats

* linting

* more linting

* fix test

* fix a frontend test

* update "licensing.reports:read" action naming

* UI doesn't allow reading only licensing reports and not the rest of licensing info

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-10-05 14:54:26 +01:00