Code

Updated read-only handling
[gosa.git] / gosa-core / include / functions.inc
index efed58c996b1e672bdc6aba08d0635ea8500caf2..e022dcd4e2c42a6102aaed4add8e867e31203242 100644 (file)
@@ -32,7 +32,7 @@ if(!isset($_SERVER['CONFIG_DIR'])){
 }
 
 /* Allow setting the config file in the apache configuration
-    e.g.  SetEnv CONFIG_FILE gosa.conf.2.5
+    e.g.  SetEnv CONFIG_FILE gosa.conf.2.6
  */
 if(!isset($_SERVER['CONFIG_FILE'])){
   define ("CONFIG_FILE", "gosa.conf");
@@ -608,15 +608,12 @@ function add_lock($object, $user)
   $cache = &session::get("LOCK_CACHE");
   if(isset($_POST['open_readonly'])){
     $cache['READ_ONLY'][$object] = TRUE;
-    echo "ADDED : {$user}:{$object}<br>";
     return;
   }
   if(isset($cache['READ_ONLY'][$object])){
-    echo "Removed lock entry $object <br>";
     unset($cache['READ_ONLY'][$object]);
   }
 
-
   if(is_array($object)){
     foreach($object as $obj){
       add_lock($obj,$user);
@@ -680,15 +677,14 @@ function del_lock ($object)
   if(session::is_set("LOCK_CACHE")){
     $cache = &session::get("LOCK_CACHE");
     if(isset($cache['READ_ONLY'][$object])){
-      if(isset($_POST['delete_lock'])){
-        unset($cache['READ_ONLY'][$object]);
-      }else{
-        echo "Skipped: $object <br>";
-        return;
-      }
+      unset($cache['READ_ONLY'][$object]);
+      //echo "Remove ".$object."<b> Skipped!</b>";
+      return;
     }
   }
 
+  //echo "Remove ".$object."<b> Done!</b>";
+
   /* Check for existance and remove the entry */
   $ldap= $config->get_ldap_link();
   $ldap->cd ($config->get_cfg_value("config"));
@@ -1289,7 +1285,7 @@ function get_uid_regexp()
 }
 
 
-function gen_locked_message($user, $dn)
+function gen_locked_message($user, $dn, $allow_readonly = FALSE)
 {
   global $plug, $config;
 
@@ -1326,7 +1322,7 @@ function gen_locked_message($user, $dn)
 
   /* Prepare and show template */
   $smarty= get_smarty();
-  
+  $smarty->assign("allow_readonly",$allow_readonly);
   if(is_array($dn)){
     $msg = "<pre>";
     foreach($dn as $sub_dn){
@@ -2243,20 +2239,20 @@ function check_schema($cfg,$rfc2307bis = FALSE)
 
   /* The gosa base schema */
   $checks['gosaObject'] = $def_check;
-  $checks['gosaObject']['REQUIRED_VERSION'] = "2.4";
+  $checks['gosaObject']['REQUIRED_VERSION'] = "2.6.1";
   $checks['gosaObject']['SCHEMA_FILES']     = array("gosa+samba3.schema","gosa.schema");
   $checks['gosaObject']['CLASSES_REQUIRED'] = array("gosaObject");
   $checks['gosaObject']['IS_MUST_HAVE']     = TRUE;
 
   /* GOsa Account class */
-  $checks["gosaAccount"]["REQUIRED_VERSION"]= "2.4";
+  $checks["gosaAccount"]["REQUIRED_VERSION"]= "2.6.1";
   $checks["gosaAccount"]["SCHEMA_FILES"]    = array("gosa+samba3.schema","gosa.schema");
   $checks["gosaAccount"]["CLASSES_REQUIRED"]= array("gosaAccount");
   $checks["gosaAccount"]["IS_MUST_HAVE"]    = TRUE;
   $checks["gosaAccount"]["INFO"]            = _("Used to store account specific informations.");
 
   /* GOsa lock entry, used to mark currently edited objects as 'in use' */
-  $checks["gosaLockEntry"]["REQUIRED_VERSION"] = "2.4";
+  $checks["gosaLockEntry"]["REQUIRED_VERSION"] = "2.6.1";
   $checks["gosaLockEntry"]["SCHEMA_FILES"]     = array("gosa+samba3.schema","gosa.schema");
   $checks["gosaLockEntry"]["CLASSES_REQUIRED"] = array("gosaLockEntry");
   $checks["gosaLockEntry"]["IS_MUST_HAVE"]     = TRUE;
@@ -2264,28 +2260,28 @@ function check_schema($cfg,$rfc2307bis = FALSE)
 
   /* Some other checks */
   foreach(array(
-        "gosaCacheEntry"        => array("version" => "2.4"),
-        "gosaDepartment"        => array("version" => "2.4"),
+        "gosaCacheEntry"        => array("version" => "2.6.1"),
+        "gosaDepartment"        => array("version" => "2.6.1"),
         "goFaxAccount"          => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
         "goFaxSBlock"           => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
         "goFaxRBlock"           => array("version" => "1.0.4", "class" => "gofaxAccount","file" => "gofax.schema"),
-        "gosaUserTemplate"      => array("version" => "2.4", "class" => "posixAccount","file" => "nis.schema"),
-        "gosaMailAccount"       => array("version" => "2.4", "class" => "mailAccount","file" => "gosa+samba3.schema"),
-        "gosaProxyAccount"      => array("version" => "2.4", "class" => "proxyAccount","file" => "gosa+samba3.schema"),
-        "gosaApplication"       => array("version" => "2.4", "class" => "appgroup","file" => "gosa.schema"),
-        "gosaApplicationGroup"  => array("version" => "2.4", "class" => "appgroup","file" => "gosa.schema"),
-        "GOhard"                => array("version" => "2.5", "class" => "terminals","file" => "goto.schema"),
-        "gotoTerminal"          => array("version" => "2.5", "class" => "terminals","file" => "goto.schema"),
-        "goServer"              => array("version" => "2.4","class" => "server","file" => "goserver.schema"),
-        "goTerminalServer"      => array("version" => "2.4", "class" => "terminals","file" => "goto.schema"),
-        "goShareServer"         => array("version" => "2.4", "class" => "terminals","file" => "goto.schema"),
-        "goNtpServer"           => array("version" => "2.4", "class" => "terminals","file" => "goto.schema"),
-        "goSyslogServer"        => array("version" => "2.4", "class" => "terminals","file" => "goto.schema"),
-        "goLdapServer"          => array("version" => "2.4"),
-        "goCupsServer"          => array("version" => "2.4", "class" => array("posixAccount", "terminals"),),
-        "goImapServer"          => array("version" => "2.4", "class" => array("mailAccount", "mailgroup"),"file" => "gosa+samba3.        schema"),
-        "goKrbServer"           => array("version" => "2.4"),
-        "goFaxServer"           => array("version" => "2.4", "class" => "gofaxAccount","file" => "gofax.schema"),
+        "gosaUserTemplate"      => array("version" => "2.6.1", "class" => "posixAccount","file" => "nis.schema"),
+        "gosaMailAccount"       => array("version" => "2.6.1", "class" => "mailAccount","file" => "gosa+samba3.schema"),
+        "gosaProxyAccount"      => array("version" => "2.6.1", "class" => "proxyAccount","file" => "gosa+samba3.schema"),
+        "gosaApplication"       => array("version" => "2.6.1", "class" => "appgroup","file" => "gosa.schema"),
+        "gosaApplicationGroup"  => array("version" => "2.6.1", "class" => "appgroup","file" => "gosa.schema"),
+        "GOhard"                => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "gotoTerminal"          => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goServer"              => array("version" => "2.6.1","class" => "server","file" => "goserver.schema"),
+        "goTerminalServer"      => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goShareServer"         => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goNtpServer"           => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goSyslogServer"        => array("version" => "2.6.1", "class" => "terminals","file" => "goto.schema"),
+        "goLdapServer"          => array("version" => "2.6.1"),
+        "goCupsServer"          => array("version" => "2.6.1", "class" => array("posixAccount", "terminals"),),
+        "goImapServer"          => array("version" => "2.6.1", "class" => array("mailAccount", "mailgroup"),"file" => "gosa+samba3.        schema"),
+        "goKrbServer"           => array("version" => "2.6.1"),
+        "goFaxServer"           => array("version" => "2.6.1", "class" => "gofaxAccount","file" => "gofax.schema"),
         ) as $name => $values){
 
           $checks[$name] = $def_check;
@@ -2326,7 +2322,7 @@ function check_schema($cfg,$rfc2307bis = FALSE)
 
   /* The gosa base schema */
   $checks['posixGroup'] = $def_check;
-  $checks['posixGroup']['REQUIRED_VERSION'] = "2.4";
+  $checks['posixGroup']['REQUIRED_VERSION'] = "2.6.1";
   $checks['posixGroup']['SCHEMA_FILES']     = array("gosa+samba3.schema","gosa.schema");
   $checks['posixGroup']['CLASSES_REQUIRED'] = array("posixGroup");
   $checks['posixGroup']['STATUS']           = TRUE;