Code

Some backport from trunk
[gosa.git] / gosa-core / plugins / personal / password / class_password.inc
index dd83519a1cdca99aecc6746097168aea157bc085..df056069a208217c2a050b75408712b1fa1031b0 100644 (file)
@@ -28,20 +28,14 @@ class password extends plugin
 
     var $proposal = "";
     var $proposalEnabled = FALSE;
-    var $proposalSelected = TRUE;
+    var $proposalSelected = FALSE;
+    var $proposalInitialized = FALSE;
 
     var $forcedHash = NULL;
 
     function password(&$config, $dn= NULL, $parent= NULL)
     {
         plugin::plugin($config, $dn, $parent);
-
-        // Try to generate a password proposal, if this is successfull 
-        //  then preselect the proposal usage. 
-        $this->refreshProposal();
-        if($this->proposal != ""){
-            $this->proposalSelected = TRUE;
-        }
     }
 
     
@@ -64,6 +58,17 @@ class password extends plugin
         $smarty = get_smarty();
         $ui = get_userinfo();
 
+
+        // Try to generate a password proposal, if this is successfull 
+        //  then preselect the proposal usage. 
+        if(!$this->proposalInitialized){
+            $this->refreshProposal();
+            if($this->proposal != ""){
+                $this->proposalSelected = TRUE;
+            }
+            $this->proposalInitialized = TRUE;
+        }
+
         /* Get acls */
         $password_ACLS = $ui->get_permissions($ui->dn,"users/password");
         $smarty->assign("ChangeACL" ,  $password_ACLS);
@@ -220,14 +225,52 @@ class password extends plugin
     static function plInfo()
     {
         return (array(
-                    "plDescription"     => _("User password"),
-                    "plSelfModify"      => TRUE,
-                    "plDepends"         => array("user"),
-                    "plPriority"        => 10,
+                    "plDescription" => _("User password"),
+                    "plSelfModify"  => TRUE,
+                    "plDepends"     => array("user"),
+                    "plPriority"    => 10,
                     "plSection"     => array("personal" => _("My account")),
                     "plCategory"    => array("users"),
-                    "plOptions"         => array(),
+                    "plOptions"     => array(),
 
+                    "plProperties" => array(
+                        array(
+                            "name"          => "PRELOCK",
+                            "type"          => "command",
+                            "default"       => "",
+                            "description"   => _("Script to be called before a password gets locked."),
+                            "check"         => "gosaProperty::isCommand",
+                            "migrate"       => "",
+                            "group"         => "password",
+                            "mandatory"     => FALSE),
+                        array(
+                            "name"          => "POSTLOCK",
+                            "type"          => "command",
+                            "default"       => "",
+                            "description"   => _("Script to be called after a password gets locked."),
+                            "check"         => "gosaProperty::isCommand",
+                            "migrate"       => "",
+                            "group"         => "password",
+                            "mandatory"     => FALSE),
+                        array(
+                            "name"          => "PREUNLOCK",
+                            "type"          => "command",
+                            "default"       => "",
+                            "description"   => _("Script to be called before a password gets unlocked."),
+                            "check"         => "gosaProperty::isCommand",
+                            "migrate"       => "",
+                            "group"         => "password",
+                            "mandatory"     => FALSE),
+                        array(
+                            "name"          => "POSTUNLOCK",
+                            "type"          => "command",
+                            "default"       => "",
+                            "description"   => _("Script to be called after a password gets unlocked."),
+                            "check"         => "gosaProperty::isCommand",
+                            "migrate"       => "",
+                            "group"         => "password",
+                            "mandatory"     => FALSE)
+                        ),
                     "plProvidedAcls"  => array())
                );
     }