|
|
|
|
@ -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 { |
|
|
|
|
data.NavTree = append(data.NavTree, &dtos.NavLink{ |
|
|
|
|
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{ |
|
|
|
|
Text: "Help", |
|
|
|
|
SubTitle: fmt.Sprintf(`%s v%s (%s)`, setting.ApplicationName, setting.BuildVersion, setting.BuildCommit), |
|
|
|
|
|