Commit Graph
100 Commits
Author SHA1 Message Date
Alexander Zobnin 5e50d9b178 Folders: Fix fetching empty folder (#78280) 2023-11-16 17:50:52 +01:00
Alexander ZobninandEric Leijonmarck 944593c4d5 Team LBAC: Able to configure default rule (#77946)
Co-authored-by: Eric Leijonmarck <eric.leijonmarck@gmail.com>
2023-11-10 12:31:37 +00:00
Alexander ZobninandSofia Papagiannaki a39242890e Folders: Able to fetch folders available for user as "shared" folder (#77774)
* Folders: Show folders user has access to at the root level

* Refactor

* Refactor

* Hide parent folders user has no access to

* Skip expensive computation if possible

* Fix tests

* Fix potential nil access

* Fix duplicated folders

* Fix linter error

* Fix querying folders if no managed permissions set

* Update benchmark

* Add special shared with me folder and fetch available non-root folders on demand

* Fix parents query

* Improve db query for folders

* Reset benchmark changes

* Fix permissions for shared with me folder

* Simplify dedup

* Add option to include shared folder permission to user's permissions

* Fix nil UID

* Remove duplicated folders from shared list

* Only left the base part

* Apply suggestions from code review

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

* Add tests

* Fix linter errors

---------

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
2023-11-08 15:28:49 +01:00
Alexander Zobnin c0d8a7132e Teams: Search by team ids (#77730)
* Teams: Search by team ids

* Add tests

* Fix tests
2023-11-06 18:08:11 +02:00
Alexander Zobnin a558d287a7 Role picker: Remove unnecessary table wrapper (#77707) 2023-11-06 15:33:58 +01:00
Alexander Zobnin 225a69ba02 Team LBAC: Fix backend validation (#77612)
* Team LBAC: Fix backend validation

* more tests

* use slices.ContainsFunc()
2023-11-03 17:02:57 +03:00
Alexander Zobnin dcdd334663 RolePicker: Use portal to render menu (#77499)
* RolePicker: Use portal for menu

* Remove logging

* Fix submenu styles

* Fix ROLE_PICKER_MAX_MENU_WIDTH calculation

* Fix first menu open glitch

* Fix menu closing on ckick

* Fix menu position
2023-11-03 11:06:51 +02:00
Alexander Zobnin cf7a2ea733 RolePicker: Optimise rendering inside lists of items (#77297)
* Role picker: Load users roles in batch

* Use orgId in request

* Add roles to OrgUser type

* Improve loading logic

* Improve loading indicator

* Fix org page

* Update service accounts page

* Use bulk roles query for teams

* Use POST requests for search

* Use post request for teams

* Update betterer results

* Review suggestions

* AdminEditOrgPage: move API calls to separate file
2023-11-01 11:57:02 +01:00
Alexander Zobnin aa7a6da985 Role picker: Fix flickering at service accounts page (#77049)
* Role picker: Fix flickering at service accounts page

* Set role picker fixed width

* Fix betterer

* Fix styles
2023-10-25 13:03:12 +02:00
Alexander Zobnin cad3c43bb1 Team LBAC: Move middleware to enterprise (#76969)
* Team LBAC: Move middleware to enterprise

* Remove ds proxy part

* Move utils to enterprise
2023-10-24 14:06:18 +03:00
Alexander ZobninandEric Leijonmarck 5563f2f98f Team LBAC: Fix multiple header values (#76821)
* Team LBAC: Fix multiple header values

Co-authored-by: Eric Leijonmarck <eleijonmarck@users.noreply.github.com>

* Fix linter error

---------

Co-authored-by: Eric Leijonmarck <eleijonmarck@users.noreply.github.com>
2023-10-19 17:09:53 +02:00
Alexander Zobnin 87d697e4fe TeamPicker: Add optional initial value support (#76353)
* TeamPicker: Add optional initial value support

* Rename value to teamId
2023-10-16 17:02:12 +02:00
Alexander Zobnin 75fd019068 ClientTokenRotation: Rotate only expired tokens (#74010)
* ClientTokenRotation: Rotate only expired tokens

* Don't expose getSessionExpiry
2023-08-30 13:43:52 +02:00
Alexander Zobnin b0790063b2 Geomap: Fix crosshair glitch (#72909) 2023-08-15 13:22:19 +02:00
Alexander Zobnin f8c44676df Grafana-ui: Fix RadioButtonList component (#72804)
* Grafana-ui: Fix RadioButtonList component

* Use just an index as a key
2023-08-03 14:56:44 +02:00
Alexander Zobnin d6e43a44bd RBAC: Explain why org role selection is disabled for externally synced users (#72274)
* Move builtin role selector to separate component

* Show message if basic roles picker disabled

* Show explanation in OSS
2023-07-25 16:16:07 +03:00
Alexander Zobnin a2442ef620 Auth: Don't show LDAP CTA card (#72121) 2023-07-24 12:56:18 +02:00
Alexander Zobnin 6c7d5bf95f Authn UI: Remove feature toggle (#70073)
* Authn UI: Remove feature toggle

* remove feature flag usage
2023-06-14 19:58:15 +03:00
Alexander Zobnin c731d9fe2c Authentication UI: Add metric for the first usage (#69779) 2023-06-09 15:26:32 +02:00
Alexander Zobnin 4e1f69d83f Authentication UI: Enable by default (#69803) 2023-06-08 18:53:51 +03:00
Alexander Zobnin 0b6ae0d119 Settings: Do not hide sensitive values if it's empty (#68088)
* Settings: Do not hide sensitive values if it's empty

* Fix implementation

* Add tests for RedactedValue function
2023-05-10 12:30:50 +02:00
Alexander Zobnin 93b461bd96 Authentication UI: Remove auth settings (#67647) 2023-05-02 15:05:19 +03:00
Alexander Zobnin a1b9eb1eea Authentication UI: Hide empty settings section (#67407) 2023-04-28 08:58:01 +02:00
Alexander Zobnin 1d99500b3e SAML UI: Fix permissions for fixed:authentication.config:writer role (#67290)
* SAML UI: Fix permissions for fixed:authentication.config:writer role

* Remove read permissions for auth settings
2023-04-27 15:46:47 +02:00
Alexander Zobnin 28a641aa50 Authentication UI: Fix permissions for saving settings (#67086)
Fix permissions for saving settings
2023-04-24 09:57:05 +02:00
Alexander Zobnin 7476219b0c SAML: Configuration UI (#64054)
* Add initial authentication config page skeleton

* Add initial SAML config page WIP

* Add few more pages

* Add connect to IdP page

* Assertion mappings page stub and url params

* Able to save settings

* Some tweaks for authentication page

* Tweak behaviour

* Tweak provider name

* Move SAML config pages to enterprise

* minor refactor

* Able to reset settings

* Configure key and cert from UI

* Refactor WIP

* Tweak styles

* Optional save button

* Some tweaks for the page

* Don't show info popup when save settings

* Improve key/cert validation

* Fetch provider status and display on auth page

* Add settings list to the auth page

* Show call to action card if no auth configured

* clean up

* Show authentication page only if SAML available

* Add access control for SSO config page

* Add feature toggle for auth config UI

* Add code owners for auth config page

* Auth config UI disabled by default

* Fix feature toggle check

* Apply suggestions from review

* Refactor: use forms for steps

* Clean up

* Improve authentication page loading

* Fix CTA link

* Minor tweaks

* Fix page route

* Fix formatting

* Fix generated code formatting
2023-04-13 16:07:43 +02:00
Alexander Zobnin 2eb4ca3827 FileUpload: Fix showFileName option (#64202)
* FileUpload: Fix showFileName option

* Fix tests
2023-03-06 12:25:48 +01:00
Alexander Zobnin 5205cfb11c SAML: Update library (fix single logout) (#62880)
* SAML: update library (fix single logout)

* Run go mod tidy
2023-02-06 09:14:36 +01:00
Alexander Zobnin 60ef88c918 SAML: Support auto login (#61685)
* SAML: Support auto login

* Add individual auto_login option for each OAuth provider

* Docs: Describe new auto_login option

* Minor refactor
2023-01-19 15:53:02 +01:00
Alexander Zobnin 1fdd3767f1 RBAC: Add permission to get usage report preview (#61570)
* AccessControl: Protect usage report preview endpoint

* Fix role display name

* Change action name

* Fix imports
2023-01-18 16:07:36 +01:00
Alexander Zobnin 354342ab26 Support Bundles: Improve creating bundle UX (#61611)
* Support Bundles: Improve creating bundle UX

* Refactor create bundle page

* Fix typo

* Don't show loading indicaror after deleting bundle
2023-01-17 17:50:14 +01:00
Alexander ZobninandChristopher Moyer 997105c20d Config: Support JSON list syntax (#61288)
* Config: Separate lists either by spaces or by commas.

* Simplify space separation

* use separate function for the config strings

* Change behavior only if string contains quotes

* add test for invalid string

* Use JSON list syntax

* ignore leading spaces when process list

* Add notes about using JSON lists into the docs

* Fix typo

* Apply suggestions from code review

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

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2023-01-16 16:03:20 +03:00
Alexander Zobnin f1b5014efd Preferences: Add pagination to org configuration page (#60896)
* Add auth labels and access control metadata to org users search results

* Fix search result JSON model

* Org users: Use API for pagination

* Fix default page size

* Refactor: UsersListPage to functional component

* Refactor: update UsersTable component code style

* Add pagination to the /orgs/{org_id}/users endpoint

* Use pagination on the AdminEditOrgPage

* Add /orgs/{org_id}/users/search endpoint to prevent breaking API

* Use existing search store method

* Remove unnecessary error

* Remove unused

* Add query param to search endpoint

* Fix endpoint docs

* Minor refactor

* Fix number of pages calculation

* Use SearchOrgUsers for all org users methods

* Refactor: GetOrgUsers as a service method

* Minor refactor: rename orgId => orgID

* Fix integration tests

* Fix tests
2023-01-09 11:54:33 +03:00
Alexander Zobnin 5ef545d290 Role picker: Refactor menu components (#60584)
* Simplify underlying components

* Move state management deeper to RoleMenuGroupsSection component

* Get rid of some unnecessary props passing

* Reduce number of unnecessary re-renders

* Simplify state
2022-12-21 11:59:12 +03:00
Alexander Zobnin f6f140c412 Role picker: Fix handling groups with the same name (#60535)
* Role picker: split components into separate files

* Role picker: fix selection groups with the same name
2022-12-20 13:43:48 +03:00
Alexander Zobnin 6e2b148745 Role picker: Split components into separate files (#60519) 2022-12-20 13:05:37 +03:00
Alexander Zobnin 958e1b6ad0 Geomap: Fix layer extent (#51956) 2022-07-11 08:32:16 -05:00
Alexander Zobnin 21591be469 Geomap: Support shared crosshair for route layer (#51495) 2022-07-06 10:08:55 +03:00
Alexander ZobninandRyan McKinley 0e1f0dd8f5 Geomap: Route/path visualization (#43554)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2022-06-27 09:45:09 -07:00
Alexander Zobnin 5a35381f77 Service accounts: don't update RBAC roles in OSS when creating service account (#50922) 2022-06-16 16:22:52 +02:00
Alexander Zobnin 118b071d98 Service accounts: able to hide api keys migration info (#50933) 2022-06-16 16:22:05 +02:00
Alexander Zobnin c6ca1b607c Service accounts: hide API keys only if all keys migrated (#50925) 2022-06-16 16:03:00 +02:00
Alexander Zobnin 859148942e Service accounts: refactor errors (#50917) 2022-06-16 16:02:03 +02:00
Alexander Zobnin c4f0be7c8d Service accounts: Migrate expired API keys (#50883) 2022-06-16 16:01:50 +02:00
Alexander Zobnin f82264c2b1 ServiceAccounts: API keys migration (#50002)
* ServiceAccounts: able to get upgrade status

* Banner with API keys migration info

* Show API keys migration info on Service accounts page

* Migrate individual API keys

* Use transaction for key migration

* Migrate all api keys to service accounts

* Hide api keys after migration

* Migrate API keys separately for each org

* Revert API key

* Revert key API method

* Rename migration actions and reducers

* Fix linter errors

* Tests for migrating single API key

* Tests for migrating all api keys

* More tests

* Fix reverting tokens

* API: rename convert to migrate

* Add api route descriptions to methods

* rearrange methods in api.go

* Refactor: rename and move some methods

* Prevent assigning tokens to non-existing service accounts

* Refactor: ID TO Id

* Refactor: fix error message

* Delete service account if migration failed

* Fix linter errors
2022-06-15 14:59:40 +02:00
50538d5309 ServiceAccounts: refactor UI (#49508)
* ServiceAccounts: refactor ServiceAccountRoleRow

* Refactor ServiceAccountRoleRow

* Refactor ServiceAccountProfile

* Refactor components

* Change service accounts icon

* Refine service accounts page header

* Improve service accounts filtering

* Change delete button style

* Tweak account id

* Auto focus name field when create service account

* Add disable/enable button

* Enable/disable service accounts

* Optimize updating service account (do not fetch all)

* Remove status column (replace by enable/disable button)

* Add banner with service accounts description

* Add tokens from main page

* Update tokens count when add token from main page

* Fix action buttons column

* Fix tokens count when change role

* Refine table row classes

* Fix buttons

* Simplify working with state

* Show message when service account updated

* Able to filter disabled accounts

* Mark disabled accounts in a table

* Refine disabled account view

* Move non-critical components to separate folder

* Remove confusing focusing

* Fix date picker position when creating new token

* DatePicker: able to set minimum date that can be selected

* Don't allow to select expiration dates prior today

* Set tomorrow as a default token expiration date

* Fix displaying expiration period

* Rename Add token button

* Refine page styles

* Show modal when disabling SA from main page

* Arrange role picker

* Refine SA page styles

* Generate default token name

* More smooth navigation between SA pages

* Stop loading indicator in case of error

* Remove legacy styles usage

* Tweaks after code review

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

* Get rid of useDisapatch in favor of mapDispatchToProps

* Tests for ServiceAccountsListPage

* Tests for service account page

* Show new role picker only with license

* Get rid of deprecated css classes

* Apply suggestion from code review

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

* Fix service accounts icon

* Tests for service account create page

* Return service account info when update

* Add behaviour tests for ServiceAccountsListPage

* Fix disabled cursor on confirm button

* More behavior tests for service account page

* Temporary disable service account migration banner

* Use safe where condition

Co-authored-by: Jguer <joao.guerreiro@grafana.com>

* Apply review suggestions

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

* Remove autofocus from search

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Jguer <joao.guerreiro@grafana.com>
2022-06-01 09:35:16 +02:00
Alexander Zobnin 9b61d9eb1c Fix wrap_handler() panic during OAuth login (#49671) 2022-05-26 12:18:18 +02:00
Alexander Zobnin d373beeb73 DatePicker: able to set minimum date that can be selected (#49503) 2022-05-24 14:43:09 +00:00
Alexander Zobnin 483319f1cb ServiceAccounts: Fix org role picker update issue (#48958)
* ServiceAccounts: Fix org role picker update issue

* Do not use React.FC
2022-05-16 10:05:37 +02:00
Alexander Zobnin 4cd1a113ef Access control: Fix listing data sources for org admins (#48961)
* Access control: Fix listing data sources for org admins

* Access control: always list non-core plugins for org admins
2022-05-13 14:07:08 +02:00
Alexander Zobnin 49790eac32 Access control: Fix role picker after roles update (#44978)
* Access control: Fix role picker after roles update

* Refactor, use useAsyncFn()

* Review suggestions
2022-02-09 16:42:46 +03:00
Alexander ZobninandDominik Prokop 089a111858 Service accounts: Add token UI (#45081)
* Initial token creation dialog

* Use date picker for expiration date

* Reset state after closing modal

* Create token flow

* Move modal to separate component

* Minor refactor

* Apply suggestions from code review

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2022-02-09 11:38:46 +01:00
Alexander Zobnin dc913f2311 Access control: fetch role options only if user has permissions (#44201)
* Access control: fetch role options only if user has permissions

* Fix org/users page
2022-01-19 16:15:52 +03:00
Alexander Zobnin 867ca5b59e Access control: Team role picker (#43418)
* Refactor: move fetching from role picker to parent component

* Make built in role props optional

* Initial team role picker

* Add role picker to the teams list

* Optimize fetching roles

* Add pagination for the teams page

* Fix tests

* Hide roles if access control not enabled

* Fix test snapshots

* Refactor: use useAsync() hook

* Refactor: simplify input component

* Move api calls to separate file

* Refactor: use useAsync() hook for user role picker

* Tweak role picker input width

* Fix pagination

* Update test snapshots

* Use loading state from useAsync() hook

* Fix roles label if no roles assigned
2022-01-17 18:04:54 +03:00
Alexander Zobnin 2c0f961c59 OAuth: Fix forwarding id token to the data source (#43204) 2021-12-17 03:34:16 -05:00
Alexander Zobnin becfd776c3 OAuth: Forward id token to the data source (#42422)
* OAuth: Forward id token to the data source

* Add tests

* Forward id token in legacy API

* Check if id_token is string or not
2021-11-29 15:40:05 +01:00
Alexander Zobnin 177a0d69d1 Disable only built-in role selector for external users (#42197) 2021-11-24 17:25:28 +03:00
Alexander Zobnin da2c99a2e1 Access control: use delegatable flag to check if role can be granted (#42070)
* Access control: use delegatable flag to check if role can be granted or not

* Fix naming
2021-11-22 17:44:03 +03:00
Alexander Zobnin 6f8cfc6def Role picker: extend width to prevent menu being out of page (#42047) 2021-11-22 16:30:24 +03:00
Alexander Zobnin 6c3c82d132 Access control: Fix permission required to invite users (prevent access error) (#41943)
* Fix permission required to invite users (prevent access error)

* Use hasAccess method with fallback

* Fix tests
2021-11-22 09:40:52 +03:00
Alexander Zobnin d66158a042 Fix loop when cannot fetch roles (#41901) 2021-11-19 12:23:03 +03:00
757463bd27 Add new role picker to admin/users page (#40631)
* Very simple role picker

* Style radio button

* Separate component for the built-in roles selector

* Custom component instead of Select

* refactor

* Custom input for role picker

* Refactor

* Able to select built-in role

* Add checkboxes for role selector

* Filter out fixed and internal roles

* Add action buttons

* Implement role search

* Fix selecting roles

* Pass custom roles to update

* User role picker

* Some UX work on role picker

* Clear search query on close

* Blur input when closed

* Add roles counter

* Refactor

* Add disabled state for picker

* Adjust disabled styles

* Replace ChangeOrgButton with role picker on admin/users page

* Remove unused code

* Apply suggestions from code review

Suggestions from the @Clarity-89

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

* Refactor: fix some errors after applying review suggestions

* Show fixed roles in the picker

* Show applied fixed roles

* Fix role counter

* Fix checkbox selection

* Use specific Role type for menu options

* Fix menu when roles list is empty

* Fix radio button name

* Make fixed roles from built-in role disabled

* Make whole menu scrollable

* Add BuiltInRole type

* Simplify appliedRoles

* Simplify options and props

* Do not select and disable inherited fixed roles

* Enable selecting fixed role

* Add description tooltip

* Fix role param name

* Export common input styles from grafana/ui

* Add ValueContainer

* Use value container

* Refactor appliedRoles logic

* Optimise role rendering

* Display selected roles

* Fix tooltip position

* Use OrgRole type

* Optimise role rendering

* Use radio button from grafana UI

* Submenu WIP

* Role picker submenu WIP

* Hide role description

* Tweak styles

* Implement submenu selection

* Disable role selection if it's inherited

* Show new role picker only in Enterprise

* Fix types

* Use orgid when fetching/updating roles

* Use orgId in all access control requests

* Styles for partially checked checkbox

* Tweak group option styles

* Role picker menu: refactor

* Reorganize roles in menu

* Fix input behaviour

* Hide groups on search

* Remove unused components

* Refactor

* Fix group selection

* Remove icons from role tags

* Add spacing for menu sections

* Rename clear all to clear in submenu

* Tweak menu width

* Show changes in the input when selecting roles

* Exclude inherited roles from selection

* Increase menu height

* Change built-in role in input on select

* Include inherited roles to the built-in role selection

* refcator import

* Refactor role picker to be able to pass roles and builtin roles getters

* Add role picker to the org users page

* Show inherited builtin roles in the popup

* Filter out managed roles

* Fix displaying initial builtin roles

* Show tooltip only for non-builtin roles

* Set min width for focused input

* Do not disable inherited roles (by design)

* Only show picker if access control enabled

* Fix tests

* Only close menu on click outside or on indicator click

* Open submenu on hover

* Don't search on empty query

* Do not open/close menu on click

* Refactor

* Apply suggestions from code review

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

* Fix formatting

* Apply suggestions

* Add more space for close menu sign

* Tune tooltip styles

* Move tooltip to the right side of option

* Use info sign instead of question

Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-11-17 18:22:40 +03:00
Alexander Zobnin d13c799aa6 Replace SAML library with fork (#40149)
* Update saml library to latest

* Use fork of crewjam/saml with fix for certificate chain bug
2021-10-08 14:19:04 +03:00
Alexander Zobnin a015bb3a23 Access Control: Fix side menu links (#33945) 2021-05-11 21:10:07 +03:00
Alexander Zobnin 3a1437fe9c Access control: Move enterprise-specific access control actions (#33781)
* Access control: add reporting permissions

* Move enterprise-specific access control actions
2021-05-06 15:28:38 +02:00
Alexander Zobnin 0e020a40a5 Access control: Fix invite endpoint permissions (#33262) 2021-04-22 16:15:57 +03:00
Alexander Zobnin dd9f701cd9 Access control: Fix predefined roles (#33260) 2021-04-22 12:49:24 +02:00
Alexander Zobnin a7e721e987 Access control: Make Admin/Users UI working with the permissions (#33176)
* API: authorize admin/users views

* Render admin/users components based on user's permissions

* Add LDAP permissions (required by admin/user page)

* Extend default admin role by LDAP permissions

* Show/hide LDAP debug views

* Render LDAP debug page if user has access

* Authorize LDAP debug view

* fix permissions definitions

* Add LDAP page permissions

* remove ambiguous permissions check

* Hide logout buttons in sessions table

* Add org/users permissions

* Use org permissions for managing user roles in orgs

* Apply permissions to org/users

* Apply suggestions from review

* Fix tests

* remove scopes from the frontend

* Tweaks according to review

* Handle /invites endpoints
2021-04-22 13:19:41 +03:00
Alexander Zobnin 41f6af96c4 Access control: Build navigation links with access control (#33024)
* Build nav links with access control

* Break up getNavTree (reduce cyclomatic complexity)

* Fix tests

* Use only ActionUsersRead permissions

* Remove unused permissions definitions

* Chore: remove unused fallbacks

* Fix linter error
2021-04-19 12:23:29 +03:00
Alexander Zobnin 8b843eb0a6 Access control: expose permissions to the frontend (#32954)
* Expose user permissions to the frontend

* Do not include empty scope

* Extend ContextSrv with hasPermission() method

* Add access control types

* Fix type error (make permissions optional)

* Fallback if access control disabled

* Move UserPermission to types

* Simplify hasPermission()
2021-04-16 16:02:16 +03:00
Alexander Zobnin 7ea58f9cf5 Access Control: Move database-related models to enterprise (#32907)
* Move database-related models to enterprise

* Chore: use GetUserBuiltInRoles() method

* Rename permission to action
2021-04-13 16:28:11 +03:00
Alexander Zobnin 7a68852aa7 Chore: move errors to enterprise (#32753) 2021-04-07 17:33:08 +03:00
Alexander Zobnin 823f0bc460 Access Control: move features to Enterprise (#32640)
* Move db package WIP

* Implement OSS access control

* Register OSS access control

* Fix linter error in tests

* Fix linter error in evaluator

* Simplify OSS tests

* Optimize builtin roles

* Chore: add comments to the exported functions

* Remove init from ossaccesscontrol package (moved to ext)

* Add access control as a dependency for http server

* Modify middleware to receive fallback function

* Middleware: refactor fallback function call

* Move unused models to enterprise

* Simplify AccessControl type

* Chore: use bool IsDisabled() method instead of CanBeDisabled interface
2021-04-06 16:49:09 +03:00
Alexander Zobnin 4af817de2e Fix access control store init (#32594) 2021-04-01 14:31:56 +02:00
Alexander Zobnin 784425c2ee Fix access control service init (#32492)
* Fix access control service init

* Chore: use assert from testify package
2021-03-30 15:14:43 +02:00
Alexander Zobnin 20f6ba5ba4 Access-control: use role UID when adding/removing roles (#32438) 2021-03-29 17:36:48 +02:00
20bd591bea Access control: Basic structure and functionality behind feature toggle (#31893)
Co-authored-by: Alexander Zobnin <alexander.zobnin@grafana.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@grafana.com>
2021-03-22 13:22:48 +01:00
Alexander ZobninandArve Knudsen b335a59d6d OAuth: custom username docs (#28400)
* OAuth: more user-frienly logging

* OAuth: custom user name attribute

* OAuth: remove deprecated nameAttributeName option

* OAuth: nameAttributePath tests

* OAuth: add name_attribute_path config option

* OAuth: docs for name_attribute_path option

* OAuth: docs for name_attribute_path

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-02-04 10:26:27 +01:00
Alexander Zobnin d6b468187e Plugins: Add Open Distro to the list of data sources supported by sigv4 (#30308) 2021-01-15 17:01:29 +03:00
Alexander Zobnin ac922f4e1d Chore: update crewjam/saml library to the latest master (#29991)
this fixes bug in processing SAML response with empty Issuer element
2020-12-28 12:15:12 +03:00
Alexander ZobninandElfo404 ae575158ed Elasticsearch: Remove timeSrv dependency (#29770)
* Elasticsearch: use time range from queries or default one

* Fix tests

* Fix language provider tests

* Elasticsearch: remove timeSrv dependency for logs context (#29841)

* Elasticsearch: remove timeSrv dependency for logs context

* Add tests & slighlty improve getIndexList

Co-authored-by: Elfo404 <gio.ricci@grafana.com>
2020-12-17 14:24:20 +03:00
Alexander Zobnin 4f9123ebe2 Provisioning: always pin app to the sidebar when enabled (#29084) 2020-11-17 09:45:40 +03:00
Alexander Zobnin d13c6b4c5a OAuth: Able to skip auto login (#28357)
* OAuth: able to skip auto login

* OAuth: tests for internal login param

* OAuth: rename internal -> disableAutoLogin

* OAuth: update log message

* OAuth: fix tests
2020-10-20 14:51:06 +03:00
Alexander Zobnin 8032b43838 OAuth: configurable user name attribute (#28286)
* OAuth: more user-frienly logging

* OAuth: custom user name attribute

* OAuth: remove deprecated nameAttributeName option

* OAuth: nameAttributePath tests

* OAuth: add name_attribute_path config option

* OAuth: docs for name_attribute_path option

* move docs to the separate branch
2020-10-20 09:56:48 +03:00
Alexander ZobninandEmil Tullstedt 2087ff6003 SAML: IdP-initiated SSO docs (#28280)
* SAML: IdP-initiated SSO docs

* Update docs/sources/enterprise/saml.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Apply suggestions from code review

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-10-16 18:04:51 +03:00
Alexander ZobninandMarcus Efraimsson b55a51e270 SAML Single Logout (#27995)
* SAML: single logout WIP

* SAML: sign SAML requests

* SAML: remove unnecessary logs

* fix go mod file

* Docs: Single Logout

* SAML: use api endpoint for single logout

* Apply suggestions from code review

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* SAML: save context for single logout

* Chore: add SAML dependencies

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-10-08 17:42:55 +03:00
Alexander ZobninandDiana Payton 7aa38f0961 Docs: note about enabling permissions for the default data source (#27259)
* Add note about enabling permissions for the default ds

* Docs: refine default ds caution message

* Update docs/sources/enterprise/datasource_permissions.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Docs: DS permissions minor fix

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-03 13:23:35 +03:00
Alexander Zobnin df11cdad62 Generic OAuth: customize login and id_token attributes (#26577)
* OAuth: add login_attribute_path to generic oauth

* OAuth: remove default client_secret values (able to use empty client_secret)

* OAuth: allow to customize id_token attribute name

* Docs: describe how login_attribute_path and id_token_attribute_name params work

* Docs: review fixes

* Docs: review fixes

* Chore: fix go linter error

* Tests: fix test code style
2020-08-03 17:33:27 +03:00
Alexander Zobnin 183f767e18 Docs: add report grid layout option description (#26520) 2020-07-22 19:02:40 +03:00
Alexander Zobnin eb792490d6 Types: add reportGrid to the feature toggles (#25689)
* Types: add reportGrid to the feature toggles

* Chore: add reportGrid to the default config
2020-06-18 12:28:41 +03:00
Alexander Zobnin c4eca530ce Fix active LDAP sync (#25321)
* LDAP: sync only users with 'ldap' module as a most recent auth module

* LDAP: tests for searching ldap users
2020-06-03 16:28:13 +03:00
Alexander ZobninandDiana Payton 0fc9ad1d67 Docs: guide how to set up SAML with Okta (#24613)
* Docs: Okta SAML guide

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Docs: review fixes

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-15 16:37:35 +03:00
Alexander Zobnin 7e6ac12b9a Chore: move dataFramesReceived event to @grafana/data (#24443) 2020-05-08 17:33:36 +03:00
d7a5f3ef80 Docs: SAML role and team sync (#23986)
* SAML: add docs for config options

* SAML: role and org mapping docs

* SAML: team sync docs

* Docs: add SAML to the team sync providers list

* Apply suggestions from code review

Co-Authored-By: Leonard Gram <leo@xlson.com>

* SAML: add `assertion_attribute_org` option to the org mapping example config

* SAML: write config sections as steb-by-step tasks

* SAML: docs tweaks

* SAML docs: minor style fixes

* SAML docs: update availability note

* Docs: add enterprise config page

* Docs: link saml options to the config page

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Docs: rename configuration to enterprise-configuration

* Docs: user's -> user

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-08 16:10:33 +03:00
Alexander Zobnin afc78339bd Fix login page redirected from password reset (#24032) 2020-04-29 14:04:32 +03:00
Alexander ZobninandMarcus Efraimsson fa710a3172 Rendering: Add metrics (#23827)
* Rendering: base metrics

* Rendering: rendering_queue_size metric

* Chore: fix linter error

* Rendering metrics: refactoring

* Apply suggestions from code review

Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Rendering metrics: handle DeadlineExceeded errors

* Rendering metrics: don't measure canceled request time

* Rendering metrics: revert deleting summary for canceled requests

* Update pkg/services/rendering/rendering.go

Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Rendering: return ErrTimeout if context deadline exceeded

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-04-27 15:29:46 +03:00
Alexander Zobnin e8f4b46aae UI: add InfoBox component (#23701)
* UI: inherit LinkButton props from ButtonHTMLAttributes

* Chore: fix implicit any

* UI: add InfoBox component

* UI: fix InfoBox border color

* Chore: use new style for defining stories

* Chore: InfoBox refactor

* Chore: inherit className attribute from HTMLDivElement
2020-04-22 16:46:01 +03:00
Alexander Zobnin f023e7a399 SAML Role and Team sync (open source part) (#23391)
* SAML: add default params for role and team sync

* SAML: add org_mapping option

* SAML: support allowed_organizations option

* Chore: expose RedirectWithError from HTTPServer

* Chore: return RedirectResponse (fix superfluous response.writeheader message)

* HTTPServer: expose ValidateRedirectTo() and CookieOptionsFromCfg()

* Config: move SAML section to the enterprise
2020-04-17 10:48:37 +03:00
Alexander Zobnin 4d81cec34f Admin: Fix Synced via LDAP message for non-LDAP external users (#23477)
* UserAdmin: remove Synced via LDAP message for non-LDAP users

* UserAdmin: show "Synced via <provider>" message for external users
2020-04-10 09:23:27 +03:00
Alexander Zobnin 2af87b4c6c Docs: remove azure and okta from generic oauth page (#23359) 2020-04-07 12:25:06 +03:00