mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
| package models
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"strings"
 | |
| 	"time"
 | |
| )
 | |
| 
 | |
| // Typed errors
 | |
| var (
 | |
| 	ErrFolderNotFound                = errors.New("folder not found")
 | |
| 	ErrFolderVersionMismatch         = errors.New("the folder has been changed by someone else")
 | |
| 	ErrFolderTitleEmpty              = errors.New("folder title cannot be empty")
 | |
| 	ErrFolderWithSameUIDExists       = errors.New("a folder/dashboard with the same uid already exists")
 | |
| 	ErrFolderSameNameExists          = errors.New("a folder or dashboard in the general folder with the same name already exists")
 | |
| 	ErrFolderFailedGenerateUniqueUid = errors.New("failed to generate unique folder ID")
 | |
| 	ErrFolderAccessDenied            = errors.New("access denied to folder")
 | |
| 	ErrFolderContainsAlertRules      = errors.New("folder contains alert rules")
 | |
| )
 | |
| 
 | |
| type Folder struct {
 | |
| 	Id      int64
 | |
| 	Uid     string
 | |
| 	Title   string
 | |
| 	Url     string
 | |
| 	Version int
 | |
| 
 | |
| 	Created time.Time
 | |
| 	Updated time.Time
 | |
| 
 | |
| 	UpdatedBy int64
 | |
| 	CreatedBy int64
 | |
| 	HasAcl    bool
 | |
| }
 | |
| 
 | |
| // UpdateDashboardModel updates an existing model from command into model for update
 | |
| func (cmd *UpdateFolderCommand) UpdateDashboardModel(dashFolder *Dashboard, orgId int64, userId int64) {
 | |
| 	dashFolder.OrgId = orgId
 | |
| 	dashFolder.Title = strings.TrimSpace(cmd.Title)
 | |
| 	dashFolder.Data.Set("title", dashFolder.Title)
 | |
| 
 | |
| 	if cmd.Uid != "" {
 | |
| 		dashFolder.SetUid(cmd.Uid)
 | |
| 	}
 | |
| 
 | |
| 	dashFolder.SetVersion(cmd.Version)
 | |
| 	dashFolder.IsFolder = true
 | |
| 
 | |
| 	if userId == 0 {
 | |
| 		userId = -1
 | |
| 	}
 | |
| 
 | |
| 	dashFolder.UpdatedBy = userId
 | |
| 	dashFolder.UpdateSlug()
 | |
| }
 | |
| 
 | |
| //
 | |
| // COMMANDS
 | |
| //
 | |
| 
 | |
| type CreateFolderCommand struct {
 | |
| 	Uid   string `json:"uid"`
 | |
| 	Title string `json:"title"`
 | |
| 
 | |
| 	Result *Folder
 | |
| }
 | |
| 
 | |
| type UpdateFolderCommand struct {
 | |
| 	Uid       string `json:"uid"`
 | |
| 	Title     string `json:"title"`
 | |
| 	Version   int    `json:"version"`
 | |
| 	Overwrite bool   `json:"overwrite"`
 | |
| 
 | |
| 	Result *Folder
 | |
| }
 | |
| 
 | |
| //
 | |
| // QUERIES
 | |
| //
 | |
| 
 | |
| type HasEditPermissionInFoldersQuery struct {
 | |
| 	SignedInUser *SignedInUser
 | |
| 	Result       bool
 | |
| }
 | |
| 
 | |
| type HasAdminPermissionInFoldersQuery struct {
 | |
| 	SignedInUser *SignedInUser
 | |
| 	Result       bool
 | |
| }
 |