Просмотр исходного кода

dashfolders: on folder page, hide tabs if not has admin permission

Daniel Lee 8 лет назад
Родитель
Сommit
e77878bba8

+ 4 - 4
public/app/features/dashboard/acl/acl.ts

@@ -90,7 +90,7 @@ export class AclCtrl {
     }
 
     return this.backendSrv.post(`/api/dashboards/id/${this.dashboard.id}/acl`, {
-      items: updated
+      items: updated,
     });
   }
 
@@ -169,9 +169,9 @@ export function dashAclModal() {
     bindToController: true,
     controllerAs: 'ctrl',
     scope: {
-      dashboard: "=",
-      meta: "="
-    }
+      dashboard: '=',
+      meta: '=',
+    },
   };
 }
 

+ 13 - 8
public/app/features/dashboard/folder_page_loader.ts

@@ -50,15 +50,20 @@ export class FolderPageLoader {
       });
       dashTab.url = folderUrl;
 
-      const permTab = _.find(ctrl.navModel.main.children, {
-        id: 'manage-folder-permissions',
-      });
-      permTab.url = folderUrl + '/permissions';
+        if (result.meta.canAdmin) {
+          const permTab = _.find(ctrl.navModel.main.children, {
+            id: 'manage-folder-permissions',
+          });
 
-      const settingsTab = _.find(ctrl.navModel.main.children, {
-        id: 'manage-folder-settings',
-      });
-      settingsTab.url = folderUrl + '/settings';
+          permTab.url = folderUrl + '/permissions';
+
+          const settingsTab = _.find(ctrl.navModel.main.children, {
+            id: 'manage-folder-settings',
+          });
+          settingsTab.url = folderUrl + '/settings';
+        } else {
+          ctrl.navModel.main.children = [dashTab];
+        }
 
       return result;
     });