summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: acbc56f)
raw | patch | inline | side by side (parent: acbc56f)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 1 Jul 2010 14:08:23 +0000 (14:08 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 1 Jul 2010 14:08:23 +0000 (14:08 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@18905 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/plugins/personal/password/class_password.inc | patch | blob | history |
diff --git a/gosa-core/plugins/personal/password/class_password.inc b/gosa-core/plugins/personal/password/class_password.inc
index 7b66ddcf39a7f3f6fbdef0ac6ccaea6454dddb14..696e3e0d8491e30f6d9d1fbe7dd28c1b8699c343 100644 (file)
class password extends plugin
{
- /* Definitions */
- var $plHeadline = "Change password";
- var $plDescription = "Change user password";
-
- function password(&$config, $dn= NULL, $parent= NULL)
- {
- plugin::plugin($config, $dn, $parent);
- }
-
-
- function execute()
- {
- plugin::execute();
- $smarty = get_smarty();
- $ui = get_userinfo();
-
- /* Get acls */
- $password_ACLS = $ui->get_permissions($ui->dn,"users/password");
- $smarty->assign("ChangeACL" , $password_ACLS);
- $smarty->assign("NotAllowed" , !preg_match("/w/i",$password_ACLS));
-
- /* Display expiration template */
- if ($this->config->get_cfg_value("core","handleExpiredAccounts") == "true"){
- $expired= ldap_expired_account($this->config, $ui->dn, $ui->username);
- if($expired == 4){
- return($smarty->fetch(get_template_path("nochange.tpl", TRUE)));
- }
+ /* Definitions */
+ var $plHeadline = "Change password";
+ var $plDescription = "Change user password";
+
+ var $proposal = "";
+
+ function password(&$config, $dn= NULL, $parent= NULL)
+ {
+ plugin::plugin($config, $dn, $parent);
+
+ $this->reloadProposal();
}
- /* Pwd change requested */
- if (isset($_POST['password_finish'])){
-
- /* Should we check different characters in new password */
- $check_differ = $this->config->get_cfg_value("core","passwordMinDiffer") != "";
- $differ = $this->config->get_cfg_value("core","passwordMinDiffer");
-
- /* Enable length check ? */
- $check_length = $this->config->get_cfg_value("core","passwordMinLength") != "";
- $length = $this->config->get_cfg_value("core","passwordMinLength");
-
- /* Call external password quality hook ?*/
- $check_hook = $this->config->get_cfg_value("core","passwordHook") != "";
- $hook = $this->config->get_cfg_value("core","passwordHook")." ".$ui->username." ".$_POST['current_password']." ".$_POST['new_password'];
- if($check_hook){
- exec($hook,$resarr);
- $check_hook_output = "";
- if(count($resarr) > 0) {
- $check_hook_output= join('\n', $resarr);
+
+ function reloadProposal()
+ {
+ $this->proposal = passwordMethod::getPasswordProposal($this->config);
+ }
+
+
+ function execute()
+ {
+ plugin::execute();
+ $smarty = get_smarty();
+ $ui = get_userinfo();
+
+ /* Get acls */
+ $password_ACLS = $ui->get_permissions($ui->dn,"users/password");
+ $smarty->assign("ChangeACL" , $password_ACLS);
+ $smarty->assign("NotAllowed" , !preg_match("/w/i",$password_ACLS));
+
+ /* Display expiration template */
+ if ($this->config->get_cfg_value("core","handleExpiredAccounts") == "true"){
+ $expired= ldap_expired_account($this->config, $ui->dn, $ui->username);
+ if($expired == 4){
+ return($smarty->fetch(get_template_path("nochange.tpl", TRUE)));
+ }
}
- }
-
- /* Check given values */
- if(!isset($_POST['current_password']) || empty($_POST['current_password'])){
- msg_dialog::display(_("Password change"),
- _("You need to specify your current password in order to proceed."),WARNING_DIALOG);
- }elseif ($_POST['new_password'] != $_POST['repeated_password']){
- msg_dialog::display(_("Password change"),
- _("The passwords you've entered as 'New password' and 'Repeated new password' do not match."),WARNING_DIALOG);
- } elseif ($_POST['new_password'] == ""){
- msg_dialog::display(_("Password change"),
- _("The password you've entered as 'New password' is empty."),WARNING_DIALOG);
- }elseif($check_differ && (substr($_POST['current_password'], 0, $differ) == substr($_POST['new_password'], 0, $differ))){
- msg_dialog::display(_("Password change"),
- _("The password used as new and current are too similar."),WARNING_DIALOG);
- }elseif($check_length && (strlen($_POST['new_password']) < $length)){
- msg_dialog::display(_("Password change"),
- _("The password used as new is to short."),WARNING_DIALOG);
- }elseif(!passwordMethod::is_harmless($_POST['new_password'])){
- msg_dialog::display(_("Password change"),
- _("The password contains possibly problematic unicode characters!"),WARNING_DIALOG);
- }elseif($check_hook && $check_hook_output != ""){
- msg_dialog::display(_("Password change"),
- sprintf(_("External password changer reported a problem: %s."),$check_hook_output),WARNING_DIALOG);
- }else{
-
- /* Try to connect via current password */
- $tldap = new LDAP(
- $ui->dn,
- $_POST['current_password'],
- $this->config->current['SERVER'],
- $this->config->get_cfg_value("core","ldapFollowReferrals") == "true",
- $this->config->get_cfg_value("core","ldapTLS") == "true");
-
- /* connection Successfull ? */
- if (!$tldap->success()){
- msg_dialog::display(_("Password change"),
- _("The password you've entered as your current password doesn't match the real one."),WARNING_DIALOG);
- }else{
-
- /* Check GOsa permissions */
- if (!preg_match("/w/i",$password_ACLS)){
- msg_dialog::display(_("Password change"),
+
+ /* Pwd change requested */
+ if (isset($_POST['password_finish'])){
+
+ /* Should we check different characters in new password */
+ $check_differ = $this->config->get_cfg_value("core","passwordMinDiffer") != "";
+ $differ = $this->config->get_cfg_value("core","passwordMinDiffer");
+
+ /* Enable length check ? */
+ $check_length = $this->config->get_cfg_value("core","passwordMinLength") != "";
+ $length = $this->config->get_cfg_value("core","passwordMinLength");
+
+ /* Call external password quality hook ?*/
+ $check_hook = $this->config->get_cfg_value("core","passwordHook") != "";
+ $hook = $this->config->get_cfg_value("core","passwordHook")." ".$ui->username." ".$_POST['current_password']." ".$_POST['new_password'];
+ if($check_hook){
+ exec($hook,$resarr);
+ $check_hook_output = "";
+ if(count($resarr) > 0) {
+ $check_hook_output= join('\n', $resarr);
+ }
+ }
+
+ /* Check given values */
+ if(!isset($_POST['current_password']) || empty($_POST['current_password'])){
+ msg_dialog::display(_("Password change"),
+ _("You need to specify your current password in order to proceed."),WARNING_DIALOG);
+ }elseif ($_POST['new_password'] != $_POST['repeated_password']){
+ msg_dialog::display(_("Password change"),
+ _("The passwords you've entered as 'New password' and 'Repeated new password' do not match."),WARNING_DIALOG);
+ } elseif ($_POST['new_password'] == ""){
+ msg_dialog::display(_("Password change"),
+ _("The password you've entered as 'New password' is empty."),WARNING_DIALOG);
+ }elseif($check_differ && (substr($_POST['current_password'], 0, $differ) == substr($_POST['new_password'], 0, $differ))){
+ msg_dialog::display(_("Password change"),
+ _("The password used as new and current are too similar."),WARNING_DIALOG);
+ }elseif($check_length && (strlen($_POST['new_password']) < $length)){
+ msg_dialog::display(_("Password change"),
+ _("The password used as new is to short."),WARNING_DIALOG);
+ }elseif(!passwordMethod::is_harmless($_POST['new_password'])){
+ msg_dialog::display(_("Password change"),
+ _("The password contains possibly problematic unicode characters!"),WARNING_DIALOG);
+ }elseif($check_hook && $check_hook_output != ""){
+ msg_dialog::display(_("Password change"),
+ sprintf(_("External password changer reported a problem: %s."),$check_hook_output),WARNING_DIALOG);
+ }else{
+
+ /* Try to connect via current password */
+ $tldap = new LDAP(
+ $ui->dn,
+ $_POST['current_password'],
+ $this->config->current['SERVER'],
+ $this->config->get_cfg_value("core","ldapFollowReferrals") == "true",
+ $this->config->get_cfg_value("core","ldapTLS") == "true");
+
+ /* connection Successfull ? */
+ if (!$tldap->success()){
+ msg_dialog::display(_("Password change"),
+ _("The password you've entered as your current password doesn't match the real one."),WARNING_DIALOG);
+ }else{
+
+ /* Check GOsa permissions */
+ if (!preg_match("/w/i",$password_ACLS)){
+ msg_dialog::display(_("Password change"),
_("You have no permission to change your password."),WARNING_DIALOG);
- }else{
- $this->change_password($ui->dn, $_POST['new_password']);
- gosa_log ("User/password has been changed");
- $ui->password= $_POST['new_password'];
- session::set('ui',$ui);
+ }else{
+ $this->change_password($ui->dn, $_POST['new_password']);
+ gosa_log ("User/password has been changed");
+ $ui->password= $_POST['new_password'];
+ session::set('ui',$ui);
#$this->handle_post_events("modify",array("userPassword" => $_POST['new_password']));
- return($smarty->fetch(get_template_path("changed.tpl", TRUE)));
- }
+ return($smarty->fetch(get_template_path("changed.tpl", TRUE)));
+ }
+ }
+ }
}
- }
+ return($smarty->fetch(get_template_path("password.tpl", TRUE)));
+ }
+
+ function change_password($dn, $pwd)
+ {
+ change_password ($dn, $pwd);
+ }
+
+ function remove_from_parent()
+ {
+ $this->handle_post_events("remove");
+ }
+
+ function save()
+ {
+ }
+
+ static function plInfo()
+ {
+ return (array(
+ "plDescription" => _("User password"),
+ "plSelfModify" => TRUE,
+ "plDepends" => array("user"),
+ "plPriority" => 10,
+ "plSection" => array("personal" => _("My account")),
+ "plCategory" => array("users"),
+ "plOptions" => array(),
+
+ "plProvidedAcls" => array())
+ );
}
- return($smarty->fetch(get_template_path("password.tpl", TRUE)));
- }
-
- function change_password($dn, $pwd)
- {
- change_password ($dn, $pwd);
- }
-
- function remove_from_parent()
- {
- $this->handle_post_events("remove");
- }
-
- function save()
- {
- }
-
- static function plInfo()
- {
- return (array(
- "plDescription" => _("User password"),
- "plSelfModify" => TRUE,
- "plDepends" => array("user"),
- "plPriority" => 10,
- "plSection" => array("personal" => _("My account")),
- "plCategory" => array("users"),
- "plOptions" => array(),
-
- "plProvidedAcls" => array())
- );
- }
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: