Code

Updated generateLdif method
[gosa.git] / gosa-core / plugins / generic / references / class_reference.inc
index 4c3ab189fba831bd2aa163e9b10daa0965906e25..f79dec13c6a13b5fe0105253e4c5ff3effd35322 100644 (file)
 
 class reference extends plugin
 {
-    var $attributes= array('uid');
+    var $attributes= array('uid','modifyTimestamp');
     var $aclResolver = NULL;
 
     var $referenceFilters = array();
     var $objectList ="";
+    var $modifyTimestamp = "";
 
     function reference (&$config, $dn= NULL, $parent = NULL)
     {
         // Init the plugin
         plugin::plugin($config,$dn,$parent);
 
+        // Try to read the 'modifyTimestamp' - this has to be done separately. 
+        $ldap = $this->config->get_ldap_link();
+        $ldap->cd($this->config->current['BASE']);
+        $ldap->cat($this->dn, array('modifyTimestamp'));
+        if($ldap->count()){
+            $attrs = $ldap->fetch();
+            if(isset($attrs['modifyTimestamp'][0])){
+                $this->modifyTimestamp = $attrs['modifyTimestamp'][0];
+            }
+        }
+
         // Initialize the ACL-resolver
         $this->aclResolver = new aclResolver($this->config, $this->dn, $this);
 
@@ -72,7 +84,7 @@ class reference extends plugin
         // Check for user manager 
         $this->referenceFilters[] = array(
             'filter' => "(&(objectClass=gosaAccount)(manager=".normalizeLdap($this->dn)."))",
-            'attrs'  => array('givenName' => _("Given name"),'sn' => _("Surname"),'uid'=>_("Uid")),
+            'attrs'  => array('givenName' => _("Given name"),'sn' => _("Surname"),'uid'=>_("UID")),
             'msg'    => _("User manager"));
 
         // Go through filters and detect possible references  
@@ -119,46 +131,37 @@ class reference extends plugin
     {
         // Mark plugin as viewed
         plugin::execute();
+
+        // Show ldif viewer
+        if(isset($_POST['viewLdif'])){
+            $this->dialog = new ldifViewer($this->config, $this->dn);
+        }
+        if(isset($_POST['cancelLdifViewer'])) $this->dialog = NULL;
+        if($this->dialog instanceOf ldifViewer){
+            return($this->dialog->execute());
+        }
+
         $smarty = get_smarty();        
 
         // Assign permissions
         $tmp = $this->plInfo();
         $ui = get_userinfo();
-        foreach($tmp['plProvidedAcls'] as $name => $desc){
-            $smarty->assign($name.'READ', $ui->get_permissions($this->dn, 'references/reference', $name));
-        }
+
+        $category = preg_replace("/\/.*$/", "", $this->acl_category);
+        $smarty->assign('aclREAD',  preg_match("/r/",$ui->get_category_permissions($this->dn, 'acl')));
+        $smarty->assign('completeACL',  $ui->has_complete_category_acls($this->dn, $category)); 
+        $smarty->assign('someACL',      $ui->get_category_permissions($this->dn, $category));
+        
+        // Convert the modifyTimestamp to a human readable value
+        $tz = timezone::get_default_timezone();
+        $smarty->assign('modifyTimestamp', set_post(date('d.m.Y H:i:s', strtotime($this->modifyTimestamp))));
 
         $smarty->assign('objectList', $this->objectList);
         $smarty->assign("acls",$this->aclResolver->getReadableACL());
-        $smarty->assign("usePrototype", "true");
+
         session::set('autocomplete', $this->aclResolver);
         return ($smarty->fetch (get_template_path('contents.tpl', TRUE, dirname(__FILE__))));
     }
-
-
-
-    static function plInfo()
-    {
-        return (array(
-                    "plShortName"   => _("Reference"),
-                    "plDescription" => _("Object references"),
-                    "plSelfModify"  => TRUE,
-                    "plDepends"     => array(),
-                    "plPriority"    => 0,
-                    "plSection"     => array("administration"),
-                    "plCategory"    => array("references" => array("description"  => _("References"),
-                                             "objectClass"  => array())),
-                    "plProvidedAcls"=> array(
-                        "references"   => _("View object references"),
-                        "acl"          => _("View acl trace"),
-                        "info"         => _("View object info"),
-                        "export"       => _("Allow entry export")
-                        )
-
-                    ));
-    }
-
-
 }
 
 ?>