grafana/pkg/services/provisioning
Gabriel MABILLE 88c11f1cc0
AccessControl: Implement a way to register fixed roles (#35641)
* AccessControl: Implement a way to register fixed roles

* Add context to register func

* Use FixedRoleGrantsMap instead of FixedRoleGrants

* Removed FixedRoles map to sync.map


* Wrote test for accesscontrol and provisioning

* Use mutexes+map instead of sync maps

* Create a sync map struct out of a Map and a Mutex

* Create a sync map struct for grants as well

* Validate builtin roles

* Make validation public to access control

* Handle errors consistently with what seeder does

* Keep errors consistant amongst accesscontrol impl

* Handle registration error

* Reverse the registration direction thanks to a RoleRegistrant interface

* Removed sync map in favor for simple maps since registration now happens during init

* Work on the Registrant interface

* Remove the Register Role from the interface to have services returning their registrations instead

* Adding context to RegisterRegistrantsRoles and update descriptions

* little bit of cosmetics

* Making sure provisioning is ran after role registration

* test for role registration

* Change the accesscontrol interface to use a variadic

* check if accesscontrol is enabled

* Add a new test for RegisterFixedRoles and fix assign which was buggy

* Moved RegistrationList def to roles.go

* Change provisioning role's description

* Better comment on RegisterFixedRoles

* Correct comment on ValidateFixedRole

* Simplify helper func to removeRoleHelper

* Add log to saveFixedRole and assignFixedRole

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Co-authored-by: Jeremy Price <Jeremy.price@grafana.com>
2021-07-30 09:52:09 +02:00
..
dashboards Provisioning: Improve validation by validating across all dashboard providers (#26742) 2021-07-21 17:52:41 +02:00
datasources API: Add by UID routes for data sources (#29884) 2021-01-13 13:16:27 -05:00
notifiers Slack: Use chat.postMessage API by default (#32511) 2021-04-22 16:00:21 +02:00
plugins PluginManager: Make remaining plugin state non-global (#32094) 2021-03-18 13:53:01 +01:00
utils Provisioning: Add validation for missing organisations in datasource, dashboard, and notifier configurations (#26601) 2020-07-30 12:59:12 +03:00
values Chore: Disable default golangci-lint filter (#29751) 2020-12-15 09:32:06 +01:00
provisioning_mock.go ProvisioningService: Change the ProvisioningService interface for easier extension (#32910) 2021-04-21 13:41:34 +02:00
provisioning_test.go ProvisioningService: Change the ProvisioningService interface for easier extension (#32910) 2021-04-21 13:41:34 +02:00
provisioning.go AccessControl: Implement a way to register fixed roles (#35641) 2021-07-30 09:52:09 +02:00