Module: check_mk
Branch: master
Commit: cfaa059972d5a2dc47a3dd3bf43482ca7a8f8d81
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cfaa059972d5a2…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Dec 15 10:40:42 2011 +0100
Fixed nagvis auth file generation
---
web/plugins/wato/nagvis_auth.py | 39 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/web/plugins/wato/nagvis_auth.py b/web/plugins/wato/nagvis_auth.py
index 9536ba9..5375f97 100644
--- a/web/plugins/wato/nagvis_auth.py
+++ b/web/plugins/wato/nagvis_auth.py
@@ -46,6 +46,43 @@
#
# This feature is available since NagVis release 1.6.1.
+#
+# The 3 following functions must be removed here when splitting
+# up the auth file generation in "global" and map folder specific
+# permissions
+#
+g_target_maps = {}
+def get_mapname_by_stringpath(filename):
+ return get_mapname(api.get_folder(filename))
+
+def get_mapname(thing):
+ """
+ folder can be a file/folder dictionary as provided by wato
+ or a tuple path to a file/folder. e.g. the parent folder.
+
+ In NagVis Mapnamen sind nur [0-9A-Za-z_-] erlaubt.
+ """
+ if thing is None:
+ return 'main'
+ elif isinstance(thing, tuple):
+ name = '_'.join(thing)
+ elif thing.get('.path', ()) != '':
+ name = thing['.path'].replace('/', '_')
+ else:
+ name = 'main'
+
+ if '.mk' in name:
+ name = name.replace('.mk', '')
+
+ return name
+
+def nagvis_auth_process_tree(thing):
+ global g_target_maps
+ g_target_maps[get_mapname(thing)] = thing
+
+ for child in thing.get('.folders', {}).itervalues():
+ process_tree(child)
+
# Generate the permissions file for the multisite authorization module
def generate_auth_file(users):
import json
@@ -57,7 +94,7 @@ def generate_auth_file(users):
#
# 0. Data gathering - populate g_target_maps list
#
- process_tree(api.get_folder_tree())
+ nagvis_auth_process_tree(api.get_folder_tree())
#
# 1. Write out the user permissions file