Commit Graph
100 Commits
Author SHA1 Message Date
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
Alexander ZobninandArve Knudsen 7afdfd2ef4 Okta OAuth provider (team sync support) (#22972)
* Okta OAuth support

* Chore: fix linter error

* Chore: move IsEmailAllowed to SocialBase

* Chore: move IsSignupAllowed to SocialBase

* Chore: review fixes

* Okta: support allowed_groups

* Okta: default config

* Chore: move extractEmail() to OktaClaims struct

* Chore: review fixes

* generic_oauth_test: Handle error cases

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* generic_oauth_test: Handle error cases

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Docs: Okta OAuth

* Chore: don't return expected errors from searchJSONForAttr

* Docs: role mapping

* Chore: review fixes (searchJSONForAttr)

* Docs: review fixes

* Update docs/sources/auth/okta.md

Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>

* Update docs/sources/auth/okta.md

Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com>

* Chore: log error if searchJSONForAttr failed

* Docs: add Okta login link

* Docs: review fixes

* Docs: add reference to the org roles

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-04-02 17:35:48 +03:00
Alexander ZobninandLeonard Gram 4393478397 Docs: export dashboard as PDF (#22746)
* Docs: export dashboard as PDF

* Update docs/sources/enterprise/_index.md

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

Co-authored-by: Leonard Gram <leo@xlson.com>
2020-03-12 16:24:56 +03:00
Alexander Zobnin 61c1e70234 Docs: add Azure AD to the list of supported providers (#22751) 2020-03-12 15:31:21 +03:00
Alexander Zobnin e1af933d4a Chore: fix moment import in alerting tests (#22567)
* Chore: disable no-restricted-imports rule for moment

fix enterprise build

* Chore: get rid of moment, use dateTime in alerting tetst
2020-03-04 15:47:23 +03:00
Alexander Zobnin fcaff011b1 ShareModal: able to extend tabs (#22537)
* ShareModal: use generic tab type

* ShareModal: able to extend with custom tabs

* ShareModal: able to extend dash/panel tabs separately

* grafana-ui: ModalTabContent component
2020-03-04 12:59:30 +03:00
Alexander Zobnin 9731ea9b89 Tests: fix alerting reducers tests (#22560) 2020-03-04 12:39:56 +03:00
Alexander Zobnin 3aa3fa3ee1 Chore: add missing aria-label for rendered panel image (e2e tests) (#22543) 2020-03-03 18:51:49 +03:00
Alexander ZobninandTorkel Ödegaard d66e72fa67 Migration: Share dashboard/panel modal (#22436)
* ShareModal: refactor dashboard export modal

* Modal: show react modals with appEvents

* ShareModal: embed panel tab

* ShareModal: bind to shortcut (p s)

* grafana-ui: ClipboardButton component

* ShareModal: use ClipboardButton component

* ClipboardButton: add to storybook

* ShareModal: use event-based approach for dashboard share

* ShareModal: remove unused

* ModalReact: pass theme to the component

* ShareModal: styles clean up

* DashboardExporter: fix tests

* fixed whitespace betwen icon and link

* ShareModal: use theme from config

* Modal: tab header refactor

* ShareModal: tests

* ShareModal: fix share url rendering

* ShareModal: remove unused angular files

* Chore: fix strictNullChecks errors

* Modal: provide theme for event-based modal usage

* ShareModal: use ModalsController for opening modal

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-03-03 15:04:28 +03:00
Alexander ZobninandLeonard Gram f2fc7aa3aa Azure OAuth: enable teamsync (#22160)
* Azure OAuth: extract groups from token for teamsync

* Docs: changed some headers

* Azure OAuth: fix tests

* Azure OAuth: fix linter error (simplify)

* Azure OAuth: add allowed_groups option

* Azure OAuth: docs for team sync and allowed_groups

* Azure OAuth: tests for allowed_groups

* Update docs/sources/auth/azuread.md

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

Co-authored-by: Leonard Gram <leo@xlson.com>
2020-02-14 14:03:00 +03:00
Alexander Zobnin e2b06d9228 Update latest.json versions to 6.6.1 (#21972) 2020-02-06 16:34:16 +03:00
Alexander ZobninandSofia Papagiannaki 32394374ff Change log for 6.6.1 (#21969)
* Change log 6.6.1

* Add PR co-authors

* fix label type for PR #21949

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-02-06 16:08:15 +03:00
Alexander Zobnin 0cfcc85dec fix dateMath import in grafana-ui (#21546) 2020-01-16 19:16:51 +03:00
Alexander ZobninandTorkel Ödegaard 8505d90768 Admin: New Admin User page (#20498)
* admin: user page to react WIP

* admin user page: basic view

* admin user page: refactor, extract orgs and permissions components

* admin user: change sessions actions styles

* admin user: add disable button

* user admin: add change grafana admin action

* user admin: able to change org role and remove org

* user admin: confirm force logout

* user admin: change org button style

* user admin: add confirm modals for critical actions

* user admin: lock down ldap user info

* user admin: align with latest design changes

* user admin: add LDAP sync

* admin user: confirm button

* user admin: add to org modal

* user admin: fix ConfirmButton story

* admin user: handle grafana admin change

* ConfirmButton: make styled component

* ConfirmButton: completely styled component

* User Admin: permissions section refactor

* admin user: refactor (orgs and sessions)

* ConfirmButton: able to set confirm variant

* admin user: inline org removal

* admin user: show ldap sync info only for ldap users

* admin user: edit profile

* ConfirmButton: some fixes after review

* Chore: fix storybook build

* admin user: rename handlers

* admin user: remove LdapUserPage import from routes

* Chore: fix ConfirmButton tests

* Chore: fix user api endpoint tests

* Chore: update failed test snapshots

* admin user: redux actions WIP

* admin user: use new ConfirmModal component for user profile

* admin user: use new ConfirmModal component for sessions

* admin user: use lockMessage

* ConfirmButton: use primary button as default

* admin user: fix ActionButton color

* UI: use Icon component for Modal

* UI: refactor ConfirmModal after Modal changes

* UI: add link button variant

* UI: able to use custom ConfirmButton

* Chore: fix type errors after ConfirmButton refactor

* Chore: revert Graph component changes (works with TS 3.7)

* Chore: use Forms.Button instead of ActionButton

* admin user: align items

* admin user: align add to org modal

* UI: organization picker component

* admin user: use org picker for AddToOrgModal

* admin user: org actions

* admin user: connect sessions actions

* admin user: updateUserPermissions action

* admin user: enable delete user action

* admin user: sync ldap user

* Chore: refactor, remove unused code

* Chore: refactor, move api calls to actions

* admin user: set user password action

* Chore: refactor, remove unused components

* admin user: set input focus on edit

* admin user: pass user into debug LDAP mapping

* UserAdminPage: Ux changes

* UserAdminPage: align buttons to the left

* UserAdminPage: align delete user button

* UserAdminPage: swap add to org modal buttons

* UserAdminPage: set password field to empty when editing

* UserAdminPage: fix tests

* Updated button border

* Chore: fix ConfirmButton after changes introduced in #21092

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-01-13 17:10:19 +01:00
Alexander Zobnin fd2131c1e3 UI: ConfirmButton component (#20993)
* UI: ConfirmButton component

* UI: add link button variant

* UI: add ConfirmButton story with delete option

* Chore: use ConfirmButton instead of DeleteButton

* UI: remove DeleteButton

* UI: rename confirmButtonVariant to confirmVariant

* UI: use Form.Button in ConfirmButton

* Chore: use sm ConfirmButton size after changing defaults

* Revert "UI: add link button variant"

This reverts commit 4372350daa.

* Chore: add 'link' variant type to the Button

* UI: DeleteButton component on top of ConfirmButton

* Chore: use DeleteButton instead of ConfirmButton

* Chore: DeleteButton, use md size by default

* Chore: update test snapshots
2019-12-13 14:42:18 +03:00
Alexander Zobnin f24b84faef UI: ConfirmModal component (#20965)
* UI: ConfirmModal component based on Modal

* UI: refactor ConfirmModal after Modal changes

* UI: use Icon component for Modal

* UI: ConfirmModal tests

* UI: ConfirmModal story
2019-12-10 11:57:34 +03:00
Alexander Zobnin 3520db1c66 Users: revert LDAP admin user page (#19463) 2019-09-27 13:06:26 +03:00
Alexander Zobnin 98c95a8a83 plugins: expose whole rxjs to plugins (#19226) 2019-09-19 16:27:31 +03:00
Alexander Zobnin 6b2e95a1f2 LDAP debug page: deduplicate errors (#19168) 2019-09-18 13:40:36 +03:00
Alexander Zobnin 494b4aaf88 LDAP: only show tab if LDAP is enabled (#19156)
* LDAP: add nav link only if ldap enabled

* LDAP: /admin/ldap required admin permissions
2019-09-17 10:27:55 +02:00
Alexander Zobnin b47f0ff07f OAuth: return GitLab groups as a part of user info (enable team sync) (#18388)
* GitLab OAuth: GetGroups refactor

* GitLab OAuth: fetch groups into UserInfo

* GitLab OAuth: minor refactor

* GitLab OAuth: team sync docs
2019-08-07 17:05:35 +03:00
Alexander Zobnin ccf11fb7a2 SAML: add auth provider label (#18197) 2019-07-19 17:13:29 +03:00
Alexander Zobnin 214195441f SAML: add metrics (#18194) 2019-07-19 15:30:31 +03:00
Alexander Zobnin e47546d529 Docs: SAML idp_metadata_url option (#18181) 2019-07-18 18:45:59 +03:00
Alexander Zobnin 5f0a7f43c3 Users: show badges for each auth provider (#17869)
* Users: show badges for each auth provider

* Chore: don't use functions in angular bindings

* Users: minor style changes to labels

* Chore: convert auth labels on the backed side, deduplicate frontend code

* Users: use authLabels everywhere instead of authModule

* User: fix edit user page style

* Users: minor fixes after review
2019-07-10 12:06:51 +03:00
Alexander Zobnin 48d5a1bcd3 OAuth: deny login for disabled users (#17957) 2019-07-05 11:35:04 +02:00
Alexander Zobnin 3d848d0fdf Teams: show proper label for each auth provider (#17860)
* Teams: show proper label for each auth provider

Teams: don't sore AuthModule in team_member table, use JOIN to get it instead

* Teams: fix AddTeamMember after last changes

* Teams: add more auth provider labels

* Teams: show external sync badge if LDAP is not enabled

* Teams: tests for getting auth module
2019-07-03 16:52:10 +03:00
Alexander Zobnin c2affdee1e OAuth: return github teams as a part of user info (enable team sync) (#17797)
* OAuth: github team sync POC

* OAuth: minor refactor of github module

* OAuth: able to use team shorthands for github team sync

* support passing a list of groups via auth-proxy header
2019-07-01 12:30:17 +03:00
Alexander Zobnin 77375f3772 UserAdmin: UI for disabling users (#17333)
* Feat: initial disable user UI

* batch disable users

* batch revoke users tokens

* split batch disable user and revoke token

* API: get users with auth info and isExternal flag

* fix tests for batch disable users

* Disable users: show is user external or not

* Users: refactor /api/users/search endpoint

* Users: use alias for "user" table

* Chore: add BatchDisableUsers() to the bus

* Users: order user list by id explicitly

* Chore: switch back to /api/users/search endpoint

* Users: move disable button to user profile page

* Users: return AuthModule from /api/users/:id endpoint

* Users: do not return unused fields

* Users: mute auth badge for disabled users

* Users: move disable button to the user section

* Users: fix SearchUsers method after last changes

* User: return auth module as array for future purposes

* User: tests for SearchUsers()

* User: return only latest auth module in SearchUsers()

* User: fix JOIN, get only most recent auth module

* Users: fix ldap badge after backed changes

* Users: show tooltip for inactive disable/enable button

* Users: move delete button to edit user view

* Users: put deactivated badge on the user list

* Users: minor refactor

* Users: adjust deactivated badge style

* Minor design changes
2019-06-25 18:49:12 +02:00
Alexander Zobnin dad894f1cc API: get list of users with additional auth info (#17305)
* batch disable users

* batch revoke users tokens

* split batch disable user and revoke token

* API: get users with auth info and isExternal flag

* fix tests for batch disable users

* Users: refactor /api/users/search endpoint

* Users: use alias for "user" table

* Chore: add BatchDisableUsers() to the bus

* Users: order user list by id explicitly

* Users: return AuthModule from /api/users/:id endpoint

* Users: do not return unused fields

* Users: fix SearchUsers method after last changes

* User: return auth module as array for future purposes

* User: tests for SearchUsers()

* User: return only latest auth module in SearchUsers()

* User: fix JOIN, get only most recent auth module
2019-06-25 18:29:07 +03:00
Alexander Zobnin 60ddad8fdb Batch disable users (#17254)
* batch disable users

* batch revoke users tokens

* split batch disable user and revoke token

* fix tests for batch disable users

* Chore: add BatchDisableUsers() to the bus
2019-05-31 13:22:22 +03:00
Alexander Zobnin a3a7916597 Auth: Logout disabled user (#17166)
* Feature: revoke user token when disabled

* Chore: fix linter error
2019-05-23 15:54:47 +03:00
Alexander Zobnin 2d03815770 Users: Disable users removed from LDAP (#16820)
* Users: add is_disabled column

* Users: disable users removed from LDAP

* Auth: return ErrInvalidCredentials for failed LDAP auth

* User: return isDisabled flag in user search api

* User: mark disabled users at the server admin page

* Chore: refactor according to review

* Auth: prevent disabled user from login

* Auth: re-enable user when it found in ldap

* User: add api endpoint for disabling user

* User: use separate endpoints to disable/enable user

* User: disallow disabling external users

* User: able do disable users from admin UI

* Chore: refactor based on review

* Chore: use more clear error check when disabling user

* Fix login tests

* Tests for disabling user during the LDAP login

* Tests for disable user API

* Tests for login with disabled user

* Remove disable user UI stub

* Sync with latest LDAP refactoring
2019-05-21 14:52:49 +03:00
Alexander Zobnin 0f1ae76e33 Docs: initial backend plugins development guide (#16631)
* Docs: initial backend plugins development guide

* Some tweaks

* more tweaks

* chore: docs changes to backend plugins guide

* chore: docs tweaks to backend plugins guide
2019-04-18 13:02:19 +02:00
Alexander Zobnin 180772f169 Heatmap: Fix empty graph if panel is too narrow (#16460)
Fixes #16378
2019-04-10 10:11:17 +02:00
Alexander Zobnin c028d410ec panels: fix loading panels with non-array targets (add tests) 2019-03-15 11:30:41 +03:00
Alexander Zobnin fe798239b2 panels: fix loading panels with non-array targets (refactor) 2019-03-15 10:31:58 +03:00
Alexander Zobnin e3b3b35dca panels: fix loading panels with non-array targets 2019-03-15 10:14:56 +03:00
Alexander Zobnin fb3ea93f9d heatmap: fix for negative values 2019-03-12 20:44:05 +03:00
Alexander Zobnin c248c1f4f1 changelog: add notes about heatmap issues #15683 #14019 2019-03-12 16:41:55 +03:00
Alexander Zobnin 9ee2a08def heatmap: able to hide buckets with zero value #12080 2019-03-12 10:59:55 +03:00
Alexander Zobnin 4e22918010 heatmap: fix prometheus buckets sorting, closes #15637 2019-03-12 10:26:20 +03:00
Alexander Zobnin abb8e71fdc heatmap: able to reverse Y buckets order, #15683 2019-03-11 18:02:25 +03:00
Alexander Zobnin 2085397f31 heatmap: fix middle bucket bound for prometheus 2019-03-11 15:54:40 +03:00
Alexander Zobnin 57f48f17a0 heatmap: don't display cut cards 2019-03-11 12:42:16 +03:00
Alexander Zobnin bef024e4eb heatmap: fix error when series empty 2019-03-11 11:58:52 +03:00
Alexander Zobnin 9dbcc0fb6e heatmap: middle bucket bound option, #15683 2019-03-11 11:46:30 +03:00
Alexander Zobnin 7167fa9d07 heatmap: reduce number of legend segments to reasonable value and round x values to prevent gaps 2019-03-07 20:05:32 +03:00
Alexander Zobnin 55d5219a05 heatmap: fix legend padding 2019-03-07 19:49:14 +03:00
Alexander Zobnin c104f31149 heatmap: fix legend for small values, #14019 #15683 2019-03-07 18:57:18 +03:00
Alexander Zobnin e4446f0340 azuremonitor: improve autocomplete UX 2019-02-06 13:52:35 +03:00