Różnice pomiędzy wersjami 2 i 3
⇤ ← Wersja 2 z 2014-05-27 09:20:08 →
Rozmiar: 6114
Edytor: wtps0n
Komentarz: aktualizacja po dodaniu do ports
← Wersja 3 z 2014-05-27 09:22:13 → ⇥
Rozmiar: 4868
Edytor: wtps0n
Komentarz: wyrzeenie patchy - dodane w projekcie
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 18: Linia 18:

== Modyfikacji skryptu z funkcjami - send_mail ==
{{{#!diff numbers=off
--- lib/functions.inc.php.orig 2011-07-21 17:42:25.000000000 +0200
+++ lib/functions.inc.php 2011-12-12 02:47:15.000000000 +0100
@@ -363,14 +363,20 @@
     }

     /* Encode the subject */
- $subject = mb_encode_mimeheader(utf8_decode($subject), "UTF-8", "Q");
+ mb_internal_encoding("UTF-8");
+ $subject = mb_encode_mimeheader($subject);

     /* Set encoding for the body */
     $header = "MIME-Version: 1.0\r\nContent-type: text/plain; charset=UTF-8\r\n";

     /* Send the mail */
     if ($mail_from) {
- $result = mail($mail, $subject, $body, $header."From: $mail_from\r\n","-f$mail_from");
+ $header .= "From: ";
+ if( $GLOBALS['messages']['resetfrom'] ) {
+ $header .= "".mb_encode_mimeheader( $GLOBALS['messages']['resetfrom'] )." ";
+ }
+ $header .= "<".$mail_from."> \n";
+ $result = mail($mail, $subject, $body, $header, "-f$mail_from");
     } else {
         $result = mail($mail, $subject, $body, $header);
     }
}}}
(Docelowo należy przerobić funckcję send_mail, tak aby tekst 'resetfrom' był przekazywany do funkcji jako zmienna (tak dla zasady).)

Self Service Password

Aplikacja do samodzielnej zmiany hasła. Źródło: LDAP ToolBox.

Polonizacja

Już nie potrzebna. Została wykonana i włączona do projektu. Jak również wszystkie poniższe poprawki. A poza tym jest już włączone do FreeBSD ports :-)

Zmiany w konfiguracji

#cd <katalog z aplikacja>
cd conf/
cp -p config.inc.php config.inc.php.orig

Konfiguracja Apache

# --- definicja katalogu ze stronami HTML/CGI ------------------------
#
<Directory /home/www/htdocs/virtuals/self-service-password>
    DirectoryIndex index.php
    AddDefaultCharset UTF-8
    AllowOverride None
    Order allow,deny
    Allow from all
    <IfModule mod_php5.c>
        php_value default_charset "utf-8"
    </IfModule>
</Directory>

# --- oraz pod/l/aczenie do aliasu
#
     Alias /ssp/ /home/www/htdocs/virtuals/self-service-password/

config.inc.php

Istotne miejsca konfiguracji:

  1. ldap_filter decyduje, jakie obiekty są wyszukiwane w katalogu. Domyślnie konta pocztowe są m.in. obiektami typu person. Ale już np. konta PureFTPd nie są. Dlatego też albo trzeba mieć dwie instancje skryptu albo też inaczej napisać filtr.

  2. Problemem jest również mail_attribute. W moim rozwiązaniu zawartość email nie jest zrozumiała dla klientów. Dlatego wybrany jest mailAlternateAddress, co może czasami prowadzić do nadużyć (wspólny alias dla dwóch kont). Niemniej ryzyko jest znikome.

--- conf/config.inc.php.orig    2011-12-05 15:23:56.000000000 +0100
+++ conf/config.inc.php 2011-12-12 02:51:01.000000000 +0100
@@ -23,10 +23,10 @@
 # Configuration
 #==============================================================================
 # LDAP
-$ldap_url = "ldap://localhost";
-$ldap_binddn = "cn=manager,dc=example,dc=com";
-$ldap_bindpw = "secret";
-$ldap_base = "dc=example,dc=com";
+$ldap_url = "ldap://127.0.0.1";
+$ldap_binddn = "cn=manager_ldapa,dc=bsdserwis,dc=com";
+$ldap_bindpw = "tajne_haslo";
+$ldap_base = "dc=cmd,dc=bsdserwis,dc=com";
 $ldap_filter = "(&(objectClass=person)(uid={login}))";

 # Active Directory mode
@@ -53,30 +53,30 @@
 # Local password policy
 # This is applied before directory password policy
 # Minimal length
-$pwd_min_length = 0;
+$pwd_min_length = 8;
 # Maximal length
-$pwd_max_length = 0;
+$pwd_max_length = 24;
 # Minimal lower characters
-$pwd_min_lower = 0;
+$pwd_min_lower = 1;
 # Minimal upper characters
-$pwd_min_upper = 0;
+$pwd_min_upper = 1;
 # Minimal digit characters
-$pwd_min_digit = 0;
+$pwd_min_digit = 1;
 # Minimal special characters
 $pwd_min_special = 0;
 # Definition of special characters
 $pwd_special_chars = "^a-zA-Z0-9";
 # Forbidden characters
-#$pwd_forbidden_chars = "@%";
+$pwd_forbidden_chars = "@%";
 # Don't reuse the same password as currently
 $pwd_no_reuse = true;
 # Complexity: number of different class of character required
-$pwd_complexity = 0;
+$pwd_complexity = 1;
 # Show policy constraints message:
 # always
 # never
 # onerror
-$pwd_show_policy = "never";
+$pwd_show_policy = "onerror";

 # Who changes the password?
 # Also applicable for question/answer save
@@ -111,17 +111,20 @@

 ## Mail
 # LDAP mail attribute
-$mail_attribute = "mail";
+$mail_attribute = "mailAlternateAddress";
 # Who the email should come from
-$mail_from = "admin@example.com";
+$mail_from = "zmiana.hasla@bsdserwis.com";
 # Notify users anytime their password is changed
-$notify_on_change = false;
+$notify_on_change = true;

 # Display help messages
 $show_help = true;

 # Language
-$lang ="en";
+$lang ="pl";
+
+# $messages depends on language :)
+#$mail_from_txt = $messages['resetfrom'];

 # Logo
 $logo = "style/ltb-logo.png";
@@ -130,17 +133,17 @@
 $debug = false;

 # Encryption, decryption keyphrase
-$keyphrase = "secret";
+$keyphrase = "losowy_ciag_znakow";

 # Where to log password resets - Make sure apache has write permission
 # By default, they are logged in Apache log
-#$reset_request_log = "/var/log/self-service-password";
+$reset_request_log = "/var/log/self-service-password";

 ## CAPTCHA
 # Use Google reCAPTCHA (http://www.google.com/recaptcha)
 # Go on the site to get public and private key
-$use_recaptcha = false;
-$recaptcha_publickey = "";
-$recaptcha_privatekey = "";
+$use_recaptcha = true;
+$recaptcha_publickey = "moj_klucz_publiczny";
+$recaptcha_privatekey = "moj_klucz_prywatny";

Plik z logiem

touch /var/log/self-service-password
chown www:www /var/log/self-service-password


No i gotowe :)

SelfServicePassword (ostatnio edytowane 2021-05-04 21:03:58 przez wtps0n)