diff --git a/pkg/api/admin_settings.go b/pkg/api/admin_settings.go new file mode 100644 index 00000000000..c126c1108c6 --- /dev/null +++ b/pkg/api/admin_settings.go @@ -0,0 +1,28 @@ +package api + +import ( + "strings" + + "github.com/grafana/grafana/pkg/middleware" + "github.com/grafana/grafana/pkg/setting" +) + +func AdminGetSettings(c *middleware.Context) { + settings := make(map[string]interface{}) + + for _, section := range setting.Cfg.Sections() { + jsonSec := make(map[string]interface{}) + settings[section.Name()] = jsonSec + + for _, key := range section.Keys() { + keyName := key.Name() + value := key.Value() + if strings.Contains(keyName, "secret") || strings.Contains(keyName, "password") { + value = "************" + } + jsonSec[keyName] = value + } + } + + c.JSON(200, settings) +} diff --git a/pkg/api/api.go b/pkg/api/api.go index a9f6b5d5dc6..28e2ea8ab3d 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -30,6 +30,7 @@ func Register(r *macaron.Macaron) { r.Get("/account/users/", reqSignedIn, Index) r.Get("/account/apikeys/", reqSignedIn, Index) r.Get("/account/import/", reqSignedIn, Index) + r.Get("/admin/settings", reqGrafanaAdmin, Index) r.Get("/admin/users", reqGrafanaAdmin, Index) r.Get("/admin/users/create", reqGrafanaAdmin, Index) r.Get("/admin/users/edit/:id", reqGrafanaAdmin, Index) @@ -94,6 +95,7 @@ func Register(r *macaron.Macaron) { // admin api r.Group("/api/admin", func() { + r.Get("/settings", AdminGetSettings) r.Get("/users", AdminSearchUsers) r.Get("/users/:id", AdminGetUser) r.Post("/users", bind(dtos.AdminCreateUserForm{}), AdminCreateUser) diff --git a/src/app/controllers/sidemenuCtrl.js b/src/app/controllers/sidemenuCtrl.js index cb5027d3dd2..211ca4451c0 100644 --- a/src/app/controllers/sidemenuCtrl.js +++ b/src/app/controllers/sidemenuCtrl.js @@ -40,11 +40,6 @@ function (angular, _, $, config) { text: "Admin", href: $scope.getUrl("/admin/users"), icon: "fa fa-cube", requireSignedIn: true, - links: [ - { text: 'Settings', href: $scope.getUrl("/admin/settings")}, - { text: 'Users', href: $scope.getUrl("/admin/users"), icon: "fa fa-lock" }, - { text: 'Log', href: "", icon: "fa fa-lock" }, - ] }); } diff --git a/src/app/features/account/all.js b/src/app/features/account/all.js new file mode 100644 index 00000000000..7c01d7b8c1c --- /dev/null +++ b/src/app/features/account/all.js @@ -0,0 +1,7 @@ +define([ + './accountUsersCtrl', + './datasourcesCtrl', + './apiKeysCtrl', + './importCtrl', + './accountCtrl', +], function () {}); diff --git a/src/app/features/admin/adminCtrl.js b/src/app/features/admin/adminCtrl.js deleted file mode 100644 index bda82618503..00000000000 --- a/src/app/features/admin/adminCtrl.js +++ /dev/null @@ -1,18 +0,0 @@ -define([ - 'angular', -], -function (angular) { - 'use strict'; - - var module = angular.module('grafana.controllers'); - - module.controller('AdminCtrl', function($scope) { - - $scope.init = function() { - $scope.editor = {index: 0}; - }; - - $scope.init(); - - }); -}); diff --git a/src/app/features/admin/adminSettingsCtrl.js b/src/app/features/admin/adminSettingsCtrl.js new file mode 100644 index 00000000000..e04372bd6ac --- /dev/null +++ b/src/app/features/admin/adminSettingsCtrl.js @@ -0,0 +1,25 @@ +define([ + 'angular', +], +function (angular) { + 'use strict'; + + var module = angular.module('grafana.controllers'); + + module.controller('AdminSettingsCtrl', function($scope, backendSrv) { + + $scope.init = function() { + $scope.accounts = []; + $scope.getUsers(); + }; + + $scope.getUsers = function() { + backendSrv.get('/api/admin/settings').then(function(settings) { + $scope.settings = settings; + }); + }; + + $scope.init(); + + }); +}); diff --git a/src/app/features/admin/all.js b/src/app/features/admin/all.js new file mode 100644 index 00000000000..35f1f4f5db9 --- /dev/null +++ b/src/app/features/admin/all.js @@ -0,0 +1,5 @@ +define([ + './adminUsersCtrl', + './adminEditUserCtrl', + './adminSettingsCtrl', +], function () {}); diff --git a/src/app/features/admin/partials/admin.html b/src/app/features/admin/partials/admin.html deleted file mode 100644 index 1198f8b5777..00000000000 --- a/src/app/features/admin/partials/admin.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - -
-
diff --git a/src/app/features/admin/partials/edit_user.html b/src/app/features/admin/partials/edit_user.html index e9db377df5a..ecc03fd1aad 100644 --- a/src/app/features/admin/partials/edit_user.html +++ b/src/app/features/admin/partials/edit_user.html @@ -1,6 +1,6 @@