mirror of https://github.com/grafana/grafana.git
				
				
				
			dashboard: only admin permission added to dashboard in folder.
This commit is contained in:
		
							parent
							
								
									d593ffe3c1
								
							
						
					
					
						commit
						0b209de5d1
					
				|  | @ -279,7 +279,8 @@ func (hs *HTTPServer) PostDashboard(c *m.ReqContext, cmd m.SaveDashboardCommand) | |||
| 
 | ||||
| 	if hs.Cfg.EditorsCanOwn && newDashboard { | ||||
| 		aclService := dashboards.NewAclService() | ||||
| 		err := aclService.MakeUserAdmin(cmd.OrgId, cmd.UserId, dashboard.Id) | ||||
| 		inFolder := cmd.FolderId > 0 | ||||
| 		err := aclService.MakeUserAdmin(cmd.OrgId, cmd.UserId, dashboard.Id, !inFolder) | ||||
| 		if err != nil { | ||||
| 			hs.log.Error("Could not make user admin", "dashboard", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err) | ||||
| 			return Error(500, "Failed to make user admin of dashboard", err) | ||||
|  |  | |||
|  | @ -63,7 +63,7 @@ func (hs *HTTPServer) CreateFolder(c *m.ReqContext, cmd m.CreateFolderCommand) R | |||
| 
 | ||||
| 	if hs.Cfg.EditorsCanOwn { | ||||
| 		aclService := dashboards.NewAclService() | ||||
| 		if err := aclService.MakeUserAdmin(c.OrgId, c.SignedInUser.UserId, cmd.Result.Id); err != nil { | ||||
| 		if err := aclService.MakeUserAdmin(c.OrgId, c.SignedInUser.UserId, cmd.Result.Id, true); err != nil { | ||||
| 			hs.log.Error("Could not make user admin", "folder", cmd.Result.Title, "user", c.SignedInUser.UserId, "error", err) | ||||
| 			return Error(500, "Failed to make user admin of folder", err) | ||||
| 		} | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ type AclService struct { | |||
| 	log log.Logger | ||||
| } | ||||
| 
 | ||||
| func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64) error { | ||||
| func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64, setViewAndEditPermissions bool) error { | ||||
| 	rtEditor := models.ROLE_EDITOR | ||||
| 	rtViewer := models.ROLE_VIEWER | ||||
| 
 | ||||
|  | @ -31,7 +31,11 @@ func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64 | |||
| 			Created:     time.Now(), | ||||
| 			Updated:     time.Now(), | ||||
| 		}, | ||||
| 		{ | ||||
| 	} | ||||
| 
 | ||||
| 	if setViewAndEditPermissions { | ||||
| 		items = append(items, | ||||
| 			&models.DashboardAcl{ | ||||
| 				OrgId:       orgId, | ||||
| 				DashboardId: dashboardId, | ||||
| 				Role:        &rtEditor, | ||||
|  | @ -39,7 +43,7 @@ func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64 | |||
| 				Created:     time.Now(), | ||||
| 				Updated:     time.Now(), | ||||
| 			}, | ||||
| 		{ | ||||
| 			&models.DashboardAcl{ | ||||
| 				OrgId:       orgId, | ||||
| 				DashboardId: dashboardId, | ||||
| 				Role:        &rtViewer, | ||||
|  | @ -47,6 +51,7 @@ func (as *AclService) MakeUserAdmin(orgId int64, userId int64, dashboardId int64 | |||
| 				Created:     time.Now(), | ||||
| 				Updated:     time.Now(), | ||||
| 			}, | ||||
| 		) | ||||
| 	} | ||||
| 
 | ||||
| 	aclCmd := &models.UpdateDashboardAclCommand{ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue