mirror of
https://github.com/grafana/grafana.git
synced 2025-09-25 19:53:47 +08:00

* Add actions and scopes * add resource service for dashboard and folder * Add dashboard guardian with fgac permission evaluation * Add CanDelete function to guardian interface * Add CanDelete property to folder and dashboard dto and set values * change to correct function name * Add accesscontrol to folder endpoints * add access control to dashboard endpoints * check access for nav links * Add fixed roles for dashboard and folders * use correct package * add hack to override guardian Constructor if accesscontrol is enabled * Add services * Add function to handle api backward compatability * Add permissionServices to HttpServer * Set permission when new dashboard is created * Add default permission when creating new dashboard * Set default permission when creating folder and dashboard * Add access control filter for dashboard search * Add to accept list * Add accesscontrol to dashboardimport * Disable access control in tests * Add check to see if user is allow to create a dashboard * Use SetPermissions * Use function to set several permissions at once * remove permissions for folder and dashboard on delete * update required permission * set permission for provisioning * Add CanCreate to dashboard guardian and set correct permisisons for provisioning * Dont set admin on folder / dashboard creation * Add dashboard and folder permission migrations * Add tests for CanCreate * Add roles and update descriptions * Solve uid to id for dashboard and folder permissions * Add folder and dashboard actions to permission filter * Handle viewer_can_edit flag * set folder and dashboard permissions services * Add dashboard permissions when importing a new dashboard * Set access control permissions on provisioning * Pass feature flags and only set permissions if access control is enabled * only add default permissions for folders and dashboards without folders * Batch create permissions in migrations * Remove `dashboards:edit` action * Remove unused function from interface * Update pkg/services/guardian/accesscontrol_guardian_test.go Co-authored-by: Gabriel MABILLE <gamab@users.noreply.github.com> Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
66 lines
2.3 KiB
Go
66 lines
2.3 KiB
Go
package dtos
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson"
|
|
)
|
|
|
|
type DashboardMeta struct {
|
|
IsStarred bool `json:"isStarred,omitempty"`
|
|
IsHome bool `json:"isHome,omitempty"`
|
|
IsSnapshot bool `json:"isSnapshot,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
CanSave bool `json:"canSave"`
|
|
CanEdit bool `json:"canEdit"`
|
|
CanAdmin bool `json:"canAdmin"`
|
|
CanStar bool `json:"canStar"`
|
|
CanDelete bool `json:"canDelete"`
|
|
Slug string `json:"slug"`
|
|
Url string `json:"url"`
|
|
Expires time.Time `json:"expires"`
|
|
Created time.Time `json:"created"`
|
|
Updated time.Time `json:"updated"`
|
|
UpdatedBy string `json:"updatedBy"`
|
|
CreatedBy string `json:"createdBy"`
|
|
Version int `json:"version"`
|
|
HasAcl bool `json:"hasAcl"`
|
|
IsFolder bool `json:"isFolder"`
|
|
FolderId int64 `json:"folderId"`
|
|
FolderUid string `json:"folderUid"`
|
|
FolderTitle string `json:"folderTitle"`
|
|
FolderUrl string `json:"folderUrl"`
|
|
Provisioned bool `json:"provisioned"`
|
|
ProvisionedExternalId string `json:"provisionedExternalId"`
|
|
}
|
|
|
|
type DashboardFullWithMeta struct {
|
|
Meta DashboardMeta `json:"meta"`
|
|
Dashboard *simplejson.Json `json:"dashboard"`
|
|
}
|
|
|
|
type TrimDashboardFullWithMeta struct {
|
|
Meta *simplejson.Json `json:"meta"`
|
|
Dashboard *simplejson.Json `json:"dashboard"`
|
|
}
|
|
|
|
type DashboardRedirect struct {
|
|
RedirectUri string `json:"redirectUri"`
|
|
}
|
|
|
|
type CalculateDiffOptions struct {
|
|
Base CalculateDiffTarget `json:"base" binding:"Required"`
|
|
New CalculateDiffTarget `json:"new" binding:"Required"`
|
|
DiffType string `json:"diffType" binding:"Required"`
|
|
}
|
|
|
|
type CalculateDiffTarget struct {
|
|
DashboardId int64 `json:"dashboardId"`
|
|
Version int `json:"version"`
|
|
UnsavedDashboard *simplejson.Json `json:"unsavedDashboard"`
|
|
}
|
|
|
|
type RestoreDashboardVersionCommand struct {
|
|
Version int `json:"version" binding:"Required"`
|
|
}
|