|
@@ -242,93 +242,69 @@ func (hs *HTTPServer) setIndexViewData(c *m.ReqContext) (*dtos.IndexViewData, er
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if c.IsGrafanaAdmin || c.OrgRole == m.ROLE_ADMIN {
|
|
|
|
|
- cfgNode := &dtos.NavLink{
|
|
|
|
|
- Id: "cfg",
|
|
|
|
|
- Text: "Configuration",
|
|
|
|
|
- SubTitle: "Organization: " + c.OrgName,
|
|
|
|
|
- Icon: "gicon gicon-cog",
|
|
|
|
|
- Url: setting.AppSubUrl + "/datasources",
|
|
|
|
|
- Children: []*dtos.NavLink{
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Data Sources",
|
|
|
|
|
- Icon: "gicon gicon-datasources",
|
|
|
|
|
- Description: "Add and configure data sources",
|
|
|
|
|
- Id: "datasources",
|
|
|
|
|
- Url: setting.AppSubUrl + "/datasources",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Users",
|
|
|
|
|
- Id: "users",
|
|
|
|
|
- Description: "Manage org members",
|
|
|
|
|
- Icon: "gicon gicon-user",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org/users",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Teams",
|
|
|
|
|
- Id: "teams",
|
|
|
|
|
- Description: "Manage org groups",
|
|
|
|
|
- Icon: "gicon gicon-team",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org/teams",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Plugins",
|
|
|
|
|
- Id: "plugins",
|
|
|
|
|
- Description: "View and configure plugins",
|
|
|
|
|
- Icon: "gicon gicon-plugins",
|
|
|
|
|
- Url: setting.AppSubUrl + "/plugins",
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Preferences",
|
|
|
|
|
- Id: "org-settings",
|
|
|
|
|
- Description: "Organization preferences",
|
|
|
|
|
- Icon: "gicon gicon-preferences",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org",
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- {
|
|
|
|
|
- Text: "API Keys",
|
|
|
|
|
- Id: "apikeys",
|
|
|
|
|
- Description: "Create & manage API keys",
|
|
|
|
|
- Icon: "gicon gicon-apikeys",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org/apikeys",
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ configNodes := []*dtos.NavLink{}
|
|
|
|
|
+
|
|
|
|
|
+ if c.OrgRole == m.ROLE_ADMIN {
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "Data Sources",
|
|
|
|
|
+ Icon: "gicon gicon-datasources",
|
|
|
|
|
+ Description: "Add and configure data sources",
|
|
|
|
|
+ Id: "datasources",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/datasources",
|
|
|
|
|
+ })
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "Users",
|
|
|
|
|
+ Id: "users",
|
|
|
|
|
+ Description: "Manage org members",
|
|
|
|
|
+ Icon: "gicon gicon-user",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/org/users",
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if c.OrgRole != m.ROLE_ADMIN {
|
|
|
|
|
- cfgNode = &dtos.NavLink{
|
|
|
|
|
- Id: "cfg",
|
|
|
|
|
- Text: "Configuration",
|
|
|
|
|
- SubTitle: "Organization: " + c.OrgName,
|
|
|
|
|
- Icon: "gicon gicon-cog",
|
|
|
|
|
- Url: setting.AppSubUrl + "/admin/users",
|
|
|
|
|
- Children: make([]*dtos.NavLink, 0),
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if c.OrgRole == m.ROLE_ADMIN || hs.Cfg.EditorsCanAdmin {
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "Teams",
|
|
|
|
|
+ Id: "teams",
|
|
|
|
|
+ Description: "Manage org groups",
|
|
|
|
|
+ Icon: "gicon gicon-team",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/org/teams",
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- data.NavTree = append(data.NavTree, cfgNode)
|
|
|
|
|
- } else {
|
|
|
|
|
- cfgNode := &dtos.NavLink{
|
|
|
|
|
- Id: "cfg",
|
|
|
|
|
- Text: "Configuration",
|
|
|
|
|
- SubTitle: "Organization: " + c.OrgName,
|
|
|
|
|
- Icon: "gicon gicon-cog",
|
|
|
|
|
- Url: setting.AppSubUrl + "/plugins",
|
|
|
|
|
- Children: []*dtos.NavLink{
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Plugins",
|
|
|
|
|
- Id: "plugins",
|
|
|
|
|
- Description: "View and configure plugins",
|
|
|
|
|
- Icon: "gicon gicon-plugins",
|
|
|
|
|
- Url: setting.AppSubUrl + "/plugins",
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "Plugins",
|
|
|
|
|
+ Id: "plugins",
|
|
|
|
|
+ Description: "View and configure plugins",
|
|
|
|
|
+ Icon: "gicon gicon-plugins",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/plugins",
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- data.NavTree = append(data.NavTree, cfgNode)
|
|
|
|
|
|
|
+ if c.OrgRole == m.ROLE_ADMIN {
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "Preferences",
|
|
|
|
|
+ Id: "org-settings",
|
|
|
|
|
+ Description: "Organization preferences",
|
|
|
|
|
+ Icon: "gicon gicon-preferences",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/org",
|
|
|
|
|
+ })
|
|
|
|
|
+ configNodes = append(configNodes, &dtos.NavLink{
|
|
|
|
|
+ Text: "API Keys",
|
|
|
|
|
+ Id: "apikeys",
|
|
|
|
|
+ Description: "Create & manage API keys",
|
|
|
|
|
+ Icon: "gicon gicon-apikeys",
|
|
|
|
|
+ Url: setting.AppSubUrl + "/org/apikeys",
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ data.NavTree = append(data.NavTree, &dtos.NavLink{
|
|
|
|
|
+ Id: "cfg",
|
|
|
|
|
+ Text: "Configuration",
|
|
|
|
|
+ SubTitle: "Organization: " + c.OrgName,
|
|
|
|
|
+ Icon: "gicon gicon-cog",
|
|
|
|
|
+ Url: configNodes[0].Url,
|
|
|
|
|
+ Children: configNodes,
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
if c.IsGrafanaAdmin {
|
|
if c.IsGrafanaAdmin {
|
|
|
data.NavTree = append(data.NavTree, &dtos.NavLink{
|
|
data.NavTree = append(data.NavTree, &dtos.NavLink{
|
|
|
Text: "Server Admin",
|
|
Text: "Server Admin",
|
|
@@ -346,27 +322,6 @@ func (hs *HTTPServer) setIndexViewData(c *m.ReqContext) (*dtos.IndexViewData, er
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (c.OrgRole == m.ROLE_EDITOR || c.OrgRole == m.ROLE_VIEWER) && hs.Cfg.EditorsCanAdmin {
|
|
|
|
|
- cfgNode := &dtos.NavLink{
|
|
|
|
|
- Id: "cfg",
|
|
|
|
|
- Text: "Configuration",
|
|
|
|
|
- SubTitle: "Organization: " + c.OrgName,
|
|
|
|
|
- Icon: "gicon gicon-cog",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org/teams",
|
|
|
|
|
- Children: []*dtos.NavLink{
|
|
|
|
|
- {
|
|
|
|
|
- Text: "Teams",
|
|
|
|
|
- Id: "teams",
|
|
|
|
|
- Description: "Manage org groups",
|
|
|
|
|
- Icon: "gicon gicon-team",
|
|
|
|
|
- Url: setting.AppSubUrl + "/org/teams",
|
|
|
|
|
- },
|
|
|
|
|
- },
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- data.NavTree = append(data.NavTree, cfgNode)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
data.NavTree = append(data.NavTree, &dtos.NavLink{
|
|
data.NavTree = append(data.NavTree, &dtos.NavLink{
|
|
|
Text: "Help",
|
|
Text: "Help",
|
|
|
SubTitle: fmt.Sprintf(`%s v%s (%s)`, setting.ApplicationName, setting.BuildVersion, setting.BuildCommit),
|
|
SubTitle: fmt.Sprintf(`%s v%s (%s)`, setting.ApplicationName, setting.BuildVersion, setting.BuildCommit),
|