Module: check_mk
Branch: master
Commit: c987a1cc926c4076cfb176ae84af0a26734107bf
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c987a1cc926c40…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jul 2 14:40:09 2012 +0200
FIX: massive speedup when changing roles/users and activing changes
---
ChangeLog | 2 ++
web/htdocs/wato.py | 9 +++++----
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index dac646e..d58677d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -44,6 +44,8 @@
* FIX: fix exception on unknown value in DropdownChoice
* FIX: add service specification to ruleset Delay service notifications
* FIX: fixed problem with disabled sites in WATO
+ * FIX: massive speedup when changing roles/users and activing changes
+ (especially when you have a larger number of users and folders)
BI:
* New iterators FOREACH_CHILD and FOREACH_PARENT
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 4c84465..8cd617d 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -992,12 +992,12 @@ def get_folder_permissions_of_users(users):
permissions[username] = {}
for folder_path, folder in folders.iteritems():
permissions[username][folder_path] = {
- 'read': check_folder_permissions(folder, 'read', False,
username) == True,
- 'write': check_folder_permissions(folder, 'write', False,
username) == True,
+ 'read': check_folder_permissions(folder, 'read', False,
username, users) == True,
+ 'write': check_folder_permissions(folder, 'write', False,
username, users) == True,
}
return permissions
-def check_folder_permissions(folder, how, exception=True, user = None):
+def check_folder_permissions(folder, how, exception=True, user = None, users = None):
if not user:
if config.may("wato.all_folders"):
return True
@@ -1017,7 +1017,8 @@ def check_folder_permissions(folder, how, exception=True, user =
None):
user = config.user_id
# Get contact groups of user
- users = load_users()
+ if users == None:
+ users = load_users()
if user not in users:
user_cgs = []
else: