Author:   Lars Michelsen <[email protected]>
Date:     Mon Jun 30 18:24:57 2014 +0200
Committer:   Lars Michelsen <[email protected]>
Commit-Date: Mon Jun 30 18:24:57 2014 +0200

FIX: Updating map permissions during renaming of maps (not renaming via CLI)

---

 ChangeLog                                          |    1 +
 .../core/classes/CoreAuthorisationHandler.php      |    4 ++++
 .../core/classes/CoreAuthorisationModGroups.php    |    4 ++++
 .../core/classes/CoreAuthorisationModMultisite.php |    4 ++++
 .../core/classes/CoreAuthorisationModSQLite.php    |    5 +++++
 share/server/core/classes/CoreModMap.php           |    4 ++++
 6 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8d25d6e..0bcfdd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@ Core:
   (like downtime / ack); The staleness marks the state of a host/service as 
outdated
   * FIX: Deleting no longer required map permission entries (e.g. of maps 
deleted
   by hand) before rendering the manage roles dialog
+  * FIX: Updating map permissions during renaming of maps (not renaming via 
CLI)
 
 1.8b4
 Frontend:
diff --git a/share/server/core/classes/CoreAuthorisationHandler.php 
b/share/server/core/classes/CoreAuthorisationHandler.php
index 3990a76..853922f 100644
--- a/share/server/core/classes/CoreAuthorisationHandler.php
+++ b/share/server/core/classes/CoreAuthorisationHandler.php
@@ -108,6 +108,10 @@ class CoreAuthorisationHandler {
         $this->MOD = new $this->sModuleName();
     }
 
+    public function renameMapPermissions($old_name, $new_name) {
+        return $this->MOD->renameMapPermissions($old_name, $new_name);
+    }
+
     public function createPermission($mod, $name) {
         return $this->MOD->createPermission($mod, $name);
     }
diff --git a/share/server/core/classes/CoreAuthorisationModGroups.php 
b/share/server/core/classes/CoreAuthorisationModGroups.php
index 21e1b9b..92f5b68 100644
--- a/share/server/core/classes/CoreAuthorisationModGroups.php
+++ b/share/server/core/classes/CoreAuthorisationModGroups.php
@@ -196,6 +196,10 @@ class CoreAuthorisationModGroups extends 
CoreAuthorisationModule {
      * It is simply read-only.
      */
 
+    public function renameMapPermissions($old_name, $new_name) {
+        return false;
+    }
+
     public function deletePermission($mod, $name) {
         return false;
     }
diff --git a/share/server/core/classes/CoreAuthorisationModMultisite.php 
b/share/server/core/classes/CoreAuthorisationModMultisite.php
index 42de0fc..986c5c6 100644
--- a/share/server/core/classes/CoreAuthorisationModMultisite.php
+++ b/share/server/core/classes/CoreAuthorisationModMultisite.php
@@ -157,6 +157,10 @@ class CoreAuthorisationModMultisite extends 
CoreAuthorisationModule {
      * It is simply read-only.
      */
 
+    public function renameMapPermissions($old_name, $new_name) {
+        return false;
+    }
+
     public function deletePermission($mod, $name) {
         return false;
     }
diff --git a/share/server/core/classes/CoreAuthorisationModSQLite.php 
b/share/server/core/classes/CoreAuthorisationModSQLite.php
index 4a7380e..4820fad 100644
--- a/share/server/core/classes/CoreAuthorisationModSQLite.php
+++ b/share/server/core/classes/CoreAuthorisationModSQLite.php
@@ -47,6 +47,11 @@ class CoreAuthorisationModSQLite extends 
CoreAuthorisationModule {
         }
     }
 
+    public function renameMapPermissions($old_name, $new_name) {
+        $this->DB->query('UPDATE perms SET obj='.$this->DB->escape($new_name)
+                        .' WHERE mod=\'Map\' AND 
obj='.$this->DB->escape($old_name));
+    }
+
     public function deletePermission($mod, $name) {
         if($name === '') {
             return false;
diff --git a/share/server/core/classes/CoreModMap.php 
b/share/server/core/classes/CoreModMap.php
index 8cc70f4..6abd0bc 100644
--- a/share/server/core/classes/CoreModMap.php
+++ b/share/server/core/classes/CoreModMap.php
@@ -901,6 +901,7 @@ class CoreModMap extends CoreModule {
     }
 
     protected function doRename($a) {
+        global $AUTHORISATION;
         $files = Array();
 
         // loop all map configs to replace mapname in all map configs
@@ -924,6 +925,9 @@ class CoreModMap extends CoreModule {
             }
         }
 
+        // And also remove the permission
+        $AUTHORISATION->renameMapPermissions($a['map'], $a['map_new_name']);
+
         // rename config file
         rename(cfg('paths', 'mapcfg').$a['map'].'.cfg',
                cfg('paths', 'mapcfg').$a['map_new_name'].'.cfg');


------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to