mirror of
https://github.com/grafana/grafana.git
synced 2025-02-03 20:21:01 -06:00
Hide sidemenu links that the user does not have access to
This commit is contained in:
parent
1758412a76
commit
c75e669204
@ -28,6 +28,7 @@ function (angular, config, _, $, store) {
|
||||
|
||||
$scope.dashAlerts = alertSrv;
|
||||
$scope.grafana.style = 'dark';
|
||||
$scope.grafana.user = {};
|
||||
|
||||
if (window.grafanaBackend) {
|
||||
$scope.initBackendFeatures();
|
||||
@ -36,10 +37,7 @@ function (angular, config, _, $, store) {
|
||||
|
||||
$scope.initBackendFeatures = function() {
|
||||
$scope.grafana.sidemenu = store.getBool('grafana.sidemenu');
|
||||
|
||||
if (window.grafanaBootData.user.login) {
|
||||
$scope.grafana.user = window.grafanaBootData.user;
|
||||
}
|
||||
$scope.grafana.user = window.grafanaBootData.user;
|
||||
|
||||
$scope.onAppEvent('logged-out', function() {
|
||||
$scope.grafana.sidemenu = false;
|
||||
|
@ -15,39 +15,59 @@ function (angular, _, $, config) {
|
||||
return config.appSubUrl + url;
|
||||
};
|
||||
|
||||
$scope.menu = [
|
||||
{
|
||||
text: "Dashbord",
|
||||
href: $scope.getUrl("/"),
|
||||
startsWith: config.appSubUrl + '/dashboard/',
|
||||
icon: "fa fa-th-large",
|
||||
links: [
|
||||
{ text: 'Settings', editview: 'settings', icon: "fa fa-cogs" },
|
||||
{ text: 'Templating', editview: 'templating', icon: "fa fa-cogs" },
|
||||
{ text: 'Annotations', editview: 'annotations', icon: "fa fa-bolt" },
|
||||
{ text: 'Export', href:"", icon: "fa fa-bolt" },
|
||||
{ text: 'JSON', href:"", icon: "fa fa-bolt" },
|
||||
]
|
||||
},
|
||||
{
|
||||
$scope.menu = [];
|
||||
$scope.menu.push({
|
||||
text: "Dashbord",
|
||||
href: $scope.getUrl("/"),
|
||||
startsWith: config.appSubUrl + '/dashboard/',
|
||||
icon: "fa fa-th-large",
|
||||
links: [
|
||||
{ text: 'Settings', editview: 'settings'},
|
||||
{ text: 'Templating', editview: 'templating'},
|
||||
{ text: 'Annotations', editview: 'annotations'},
|
||||
{ text: 'Export', href:""},
|
||||
{ text: 'JSON', href:""},
|
||||
]
|
||||
});
|
||||
|
||||
if ($scope.grafana.user.accountRole === 'Admin') {
|
||||
$scope.menu.push({
|
||||
text: "Account", href: $scope.getUrl("/account"),
|
||||
requireRole: "Admin",
|
||||
icon: "fa fa-shield",
|
||||
links: [
|
||||
{ text: 'Info', href: $scope.getUrl("/account"), icon: "fa fa-sitemap" },
|
||||
{ text: 'Data sources', href: $scope.getUrl("/account/datasources"), icon: "fa fa-sitemap" },
|
||||
{ text: 'Users', href: $scope.getUrl("/account/users"), icon: "fa fa-users" },
|
||||
{ text: 'API Keys', href: $scope.getUrl("/account/apikeys"), icon: "fa fa-key" },
|
||||
{ text: 'Info', href: $scope.getUrl("/account")},
|
||||
{ text: 'Data sources', href: $scope.getUrl("/account/datasources")},
|
||||
{ text: 'Users', href: $scope.getUrl("/account/users")},
|
||||
{ text: 'API Keys', href: $scope.getUrl("/account/apikeys")},
|
||||
]
|
||||
},
|
||||
{
|
||||
});
|
||||
}
|
||||
|
||||
if ($scope.grafana.user.isSignedIn) {
|
||||
$scope.menu.push({
|
||||
text: "Profile", href: $scope.getUrl("/profile"),
|
||||
icon: "fa fa-user",
|
||||
requireSignedIn: true,
|
||||
links: [
|
||||
{ text: 'Info', href: $scope.getUrl("/profile"), icon: "fa fa-sitemap" },
|
||||
{ text: 'Info', href: $scope.getUrl("/profile"), icon: "fa fa-sitemap" },
|
||||
{ text: 'Password', href:"", icon: "fa fa-lock" },
|
||||
]
|
||||
}
|
||||
];
|
||||
});
|
||||
}
|
||||
|
||||
if ($scope.grafana.user.isGrafanaAdmin) {
|
||||
$scope.menu.push({
|
||||
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" },
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
$scope.onAppEvent('$routeUpdate', function() {
|
||||
$scope.updateState();
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div ng-controller="SideMenuCtrl" ng-init="init()">
|
||||
|
||||
<ul class="sidemenu">
|
||||
<li class="dropdown">
|
||||
<li class="dropdown" ng-if="grafana.user.isSignedIn">
|
||||
<a class="sidemenu-user pointer" data-toggle="dropdown" title="{{grafana.user.email}}">
|
||||
<span class="gravatar-missing">f</span>
|
||||
<img ng-src="{{grafana.user.gravatarUrl}}" width="35">
|
||||
@ -11,6 +11,9 @@
|
||||
<li><a href="{{appSubUrl}}/login?logout">Logout</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-if="!grafana.user.isSignedIn">
|
||||
<a href="login" class="sidemenu-item"><i class="fa fa-sign-in"></i>Sign in</a>
|
||||
</li>
|
||||
<li ng-repeat-start="item in menu" ng-class="{'active': item.active}">
|
||||
<a href="{{item.href}}" class="sidemenu-item"><i class="{{item.icon}}"></i>{{item.text}}</a>
|
||||
</li>
|
||||
|
Loading…
Reference in New Issue
Block a user