Access Control: Rename global users scope (#46794)
* Rename scope from global:users to global.users to match scope convention
This commit is contained in:
+2
-2
@@ -174,7 +174,7 @@ func (hs *HTTPServer) registerRoutes() {
|
||||
}, reqSignedInNoAnonymous)
|
||||
|
||||
apiRoute.Group("/users", func(usersRoute routing.RouteRegister) {
|
||||
userIDScope := ac.Scope("global", "users", "id", ac.Parameter(":id"))
|
||||
userIDScope := ac.Scope("global.users", "id", ac.Parameter(":id"))
|
||||
usersRoute.Get("/", authorize(reqGrafanaAdmin, ac.EvalPermission(ac.ActionUsersRead, ac.ScopeGlobalUsersAll)), routing.Wrap(hs.searchUsersService.SearchUsers))
|
||||
usersRoute.Get("/search", authorize(reqGrafanaAdmin, ac.EvalPermission(ac.ActionUsersRead, ac.ScopeGlobalUsersAll)), routing.Wrap(hs.searchUsersService.SearchUsersWithPaging))
|
||||
usersRoute.Get("/:id", authorize(reqGrafanaAdmin, ac.EvalPermission(ac.ActionUsersRead, userIDScope)), routing.Wrap(hs.GetUserByID))
|
||||
@@ -516,7 +516,7 @@ func (hs *HTTPServer) registerRoutes() {
|
||||
|
||||
// Administering users
|
||||
r.Group("/api/admin/users", func(adminUserRoute routing.RouteRegister) {
|
||||
userIDScope := ac.Scope("global", "users", "id", ac.Parameter(":id"))
|
||||
userIDScope := ac.Scope("global.users", "id", ac.Parameter(":id"))
|
||||
|
||||
adminUserRoute.Post("/", authorize(reqGrafanaAdmin, ac.EvalPermission(ac.ActionUsersCreate)), routing.Wrap(hs.AdminCreateUser))
|
||||
adminUserRoute.Put("/:id/password", authorize(reqGrafanaAdmin, ac.EvalPermission(ac.ActionUsersPasswordUpdate, userIDScope)), routing.Wrap(hs.AdminUpdateUserPassword))
|
||||
|
||||
@@ -28,7 +28,7 @@ import (
|
||||
//
|
||||
// Set password for user.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.password:update` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.password:update` and scope `global.users:*`.
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -45,7 +45,7 @@ import (
|
||||
// Set permissions for user.
|
||||
//
|
||||
// Only works with Basic Authentication (username and password). See introduction for an explanation.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.permissions:update` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.permissions:update` and scope `global.users:*`.
|
||||
//
|
||||
// Responses:
|
||||
// 200: okResponse
|
||||
@@ -58,7 +58,7 @@ import (
|
||||
//
|
||||
// Delete global User.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:delete` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:delete` and scope `global.users:*`.
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -74,7 +74,7 @@ import (
|
||||
//
|
||||
// Disable user.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:disable` and scope `global:users:1` (userIDScope).
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:disable` and scope `global.users:1` (userIDScope).
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -90,7 +90,7 @@ import (
|
||||
//
|
||||
// Enable user.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:enable` and scope `global:users:1` (userIDScope).
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users:enable` and scope `global.users:1` (userIDScope).
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -106,7 +106,7 @@ import (
|
||||
//
|
||||
// Fetch user quota.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.quotas:list` and scope `global:users:1` (userIDScope).
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.quotas:list` and scope `global.users:1` (userIDScope).
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -122,7 +122,7 @@ import (
|
||||
//
|
||||
// Update user quota.
|
||||
//
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.quotas:update` and scope `global:users:1` (userIDScope).
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.quotas:update` and scope `global.users:1` (userIDScope).
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -137,7 +137,7 @@ import (
|
||||
// swagger:route GET /admin/users/{user_id}/auth-tokens admin_users getAuthTokens
|
||||
//
|
||||
// Return a list of all auth tokens (devices) that the user currently have logged in from.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.authtoken:list` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.authtoken:list` and scope `global.users:*`.
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -153,7 +153,7 @@ import (
|
||||
// Revoke auth token for user.
|
||||
//
|
||||
// Revokes the given auth token (device) for the user. User of issued auth token (device) will no longer be logged in and will be required to authenticate again upon next activity.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.authtoken:update` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.authtoken:update` and scope `global.users:*`.
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
@@ -169,7 +169,7 @@ import (
|
||||
// swagger:route POST /admin/users/{user_id}/logout admin_users logoutUser
|
||||
//
|
||||
// Logout user revokes all auth tokens (devices) for the user. User of issued auth tokens (devices) will no longer be logged in and will be required to authenticate again upon next activity.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.logout` and scope `global:users:*`.
|
||||
// If you are running Grafana Enterprise and have Fine-grained access control enabled, you need to have a permission with action `users.logout` and scope `global.users:*`.
|
||||
//
|
||||
// Security:
|
||||
// - basic:
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ func (hs *HTTPServer) getUserUserProfile(c *models.ReqContext, userID int64) res
|
||||
query.Result.IsExternal = true
|
||||
}
|
||||
|
||||
query.Result.AccessControl = hs.getAccessControlMetadata(c, "global:users:id:", strconv.FormatInt(userID, 10))
|
||||
query.Result.AccessControl = hs.getAccessControlMetadata(c, "global.users:id:", strconv.FormatInt(userID, 10))
|
||||
query.Result.AvatarUrl = dtos.GetGravatarUrl(query.Result.Email)
|
||||
|
||||
return response.JSON(200, query.Result)
|
||||
|
||||
@@ -296,7 +296,7 @@ const (
|
||||
ActionPluginsManage = "plugins:manage"
|
||||
|
||||
// Global Scopes
|
||||
ScopeGlobalUsersAll = "global:users:*"
|
||||
ScopeGlobalUsersAll = "global.users:*"
|
||||
|
||||
// APIKeys scope
|
||||
ScopeAPIKeysAll = "apikeys:*"
|
||||
|
||||
@@ -115,7 +115,7 @@ var (
|
||||
DisplayName: "User reader",
|
||||
Description: "Read all users and their information, such as team memberships, authentication tokens, and quotas.",
|
||||
Group: "User administration (global)",
|
||||
Version: 3,
|
||||
Version: 4,
|
||||
Permissions: []Permission{
|
||||
{
|
||||
Action: ActionUsersRead,
|
||||
@@ -141,7 +141,7 @@ var (
|
||||
DisplayName: "User writer",
|
||||
Description: "Read and update all attributes and settings for all users in Grafana: update user information, read user information, create or enable or disable a user, make a user a Grafana administrator, sign out a user, update a user’s authentication token, or update quotas for all users.",
|
||||
Group: "User administration (global)",
|
||||
Version: 3,
|
||||
Version: 4,
|
||||
Permissions: ConcatPermissions(usersReaderRole.Permissions, []Permission{
|
||||
{
|
||||
Action: ActionUsersPasswordUpdate,
|
||||
|
||||
Reference in New Issue
Block a user