patch attached ...
diff -ur gosa.orig/include/password-methods/class_password-methods-sasl.inc gosa/include/password-methods/class_password-methods-sasl.inc --- gosa.orig/include/password-methods/class_password-methods-sasl.inc 2012-05-02 11:49:53.000000000 +0200 +++ gosa/include/password-methods/class_password-methods-sasl.inc 2013-11-24 14:32:29.354960467 +0100 @@ -42,8 +42,6 @@ if($ldap->count() == 1){ $attrs = $ldap->fetch(); $this->uid = $attrs['uid'][0]; - }else{ - trigger_error("Cannot change password, unknown users '".$dn."'"); } } diff -ur gosa.orig/plugins/admin/users/class_userManagement.inc gosa/plugins/admin/users/class_userManagement.inc --- gosa.orig/plugins/admin/users/class_userManagement.inc 2012-05-04 17:08:16.000000000 +0200 +++ gosa/plugins/admin/users/class_userManagement.inc 2013-11-24 14:38:46.563804917 +0100 @@ -279,18 +279,6 @@ $this->proposalSelected = ($this->proposal != ""); $this->dn = array_pop($this->pwd_change_queue); - // Do not allow to modify SASL passwords for this customer - $ldap = $this->config->get_ldap_link(); - $ldap->cat($this->dn, array('uid', 'userPassword')); - $attrs = $ldap->fetch(); - $hasSasl = isset($attrs['userPassword'][0]) && preg_match("/^{SASL}/i", $attrs['userPassword'][0]); - $getsSasl= !isset($this->force_hash_type[$this->dn]) || $this->force_hash_type[$this->dn] == "sasl"; - if($getsSasl && $hasSasl){ - $this->dn = ""; - $this->handlePasswordQueue(); - return; - } - // Check if we are able to enforce a password change $ldap = $this->config->get_ldap_link(); $ldap->cd($this->config->current['BASE']);