Thomas Bruederli
2013-01-23 aefb92408255d269354a4c0be39538b317744cd5
plugins/password/README
@@ -19,20 +19,31 @@
 with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 @version 1.2
 @version @package_version@
 @author Aleksander 'A.L.E.C' Machniak <alec@alec.pl>
 @author <see driver files for driver authors>
 -----------------------------------------------------------------------
 1.    Configuration
 2.   Drivers
 2.1.    Database (sql)
 2.2.   Cyrus/SASL (sasl)
 2.3.   Poppassd/Courierpassd (poppassd)
 2.4.   LDAP (ldap)
 2.5.   DirectAdmin Control Panel
 2.6.   cPanel
 2.7.   XIMSS (Communigate)
 2.1.  Database (sql)
 2.2.  Cyrus/SASL (sasl)
 2.3.  Poppassd/Courierpassd (poppassd)
 2.4.  LDAP (ldap)
 2.5.  DirectAdmin Control Panel (directadmin)
 2.6.  cPanel (cpanel)
 2.7.  XIMSS/Communigate (ximms)
 2.8.  Virtualmin (virtualmin)
 2.9.  hMailServer (hmail)
 2.10. PAM (pam)
 2.11. Chpasswd (chpasswd)
 2.12. LDAP - no PEAR (ldap_simple)
 2.13. XMail (xmail)
 2.14. Pw (pw_usermod)
 2.15. domainFACTORY (domainfactory)
 2.16. DBMail (dbmail)
 2.17. Expect (expect)
 2.18. Samba (smb)
 3.   Driver API
@@ -54,7 +65,7 @@
 -------------------
 You can specify which database to connect by 'password_db_dsn' option and
 what SQL query to execute by 'password_query'. See main.inc.php file for
 what SQL query to execute by 'password_query'. See main.inc.php.dist file for
 more info.
 Example implementations of an update_passwd function:
@@ -107,7 +118,7 @@
 2.2. Cyrus/SASL (sasl)
 ----------------------
 Cyrus SASL database authentication allows your Cyrus+RoundCube
 Cyrus SASL database authentication allows your Cyrus+Roundcube
 installation to host mail users without requiring a Unix Shell account!
 This driver only covers the "sasldb" case when using Cyrus SASL. Kerberos
@@ -127,7 +138,7 @@
 Installation:
 Change into the drivers directory. Edit the chgsaslpasswd.c file as is
 Change into the helpers directory. Edit the chgsaslpasswd.c file as is
 documented within it.
 Compile the wrapper program:
@@ -159,35 +170,132 @@
 -------------------------------------
 You can specify which host to connect to via 'password_pop_host' and
 what port via 'password_pop_port'. See config.inc.php file for more info.
 what port via 'password_pop_port'. See config.inc.php.dist file for more info.
 2.4. LDAP (ldap)
 ----------------
 See config.inc.php file. Requires PEAR::Net_LDAP2 package.
 See config.inc.php.dist file. Requires PEAR::Net_LDAP2 package.
 2.5. DirectAdmin Control Panel
 -------------------------------------
 2.5. DirectAdmin Control Panel (directadmin)
 --------------------------------------------
 You can specify which host to connect to via 'password_directadmin_host'
 and what port via 'password_direactadmin_port'. See config.inc.php file
 for more info.
 You can specify which host to connect to via 'password_directadmin_host' (don't
 forget to use tcp:// or ssl://) and what port via 'password_direactadmin_port'.
 The password enforcement with plenty customization can be done directly by
 DirectAdmin, please see http://www.directadmin.com/features.php?id=910
 See config.inc.php.dist file for more info.
 2.6. cPanel
 -----------
 2.6. cPanel (cpanel)
 --------------------
 You can specify parameters for HTTP connection to cPanel's admin
 interface. See config.inc.php file for more info.
 interface. See config.inc.php.dist file for more info.
 2.7. XIMSS (Communigate)
 -------------------------------------
 2.7. XIMSS/Communigate (ximms)
 ------------------------------
 You can specify which host and port to connect to via 'password_ximss_host' 
 and 'password_ximss_port'. See config.inc.php file for more info.
 and 'password_ximss_port'. See config.inc.php.dist file for more info.
 2.8. Virtualmin (virtualmin)
 ----------------------------
 As in sasl driver this one allows to change password using shell
 utility called "virtualmin". See helpers/chgvirtualminpasswd.c for
 installation instructions. See also config.inc.php.dist file.
 2.9. hMailServer (hmail)
 ------------------------
 Requires PHP COM (Windows only). For access to hMail server on remote host
 you'll need to define 'hmailserver_remote_dcom' and 'hmailserver_server'.
 See config.inc.php.dist file for more info.
 2.10. PAM (pam)
 ---------------
 This driver is for changing passwords of shell users authenticated with PAM.
 Requires PECL's PAM exitension to be installed (http://pecl.php.net/package/PAM).
 2.11. Chpasswd (chpasswd)
 -------------------------
 Driver that adds functionality to change the systems user password via
 the 'chpasswd' command. See config.inc.php.dist file.
 Attached wrapper script (helpers/chpass-wrapper.py) restricts password changes
 to uids >= 1000 and can deny requests based on a blacklist.
 2.12.  LDAP - no PEAR (ldap_simple)
 -----------------------------------
 It's rewritten ldap driver that doesn't require the Net_LDAP2 PEAR extension.
 It uses directly PHP's ldap module functions instead (as Roundcube does).
 This driver is fully compatible with the ldap driver, but
 does not require (or uses) the
    $rcmail_config['password_ldap_force_replace'] variable.
 Other advantages:
    * Connects only once with the LDAP server when using the search user.
    * Does not read the DN, but only replaces the password within (that is
      why the 'force replace' is always used).
 2.13.  XMail (xmail)
 -----------------------------------
 Driver for XMail (www.xmailserver.org). See config.inc.php.dist file
 for configuration description.
 2.14.  Pw (pw_usermod)
 -----------------------------------
 Driver to change the systems user password via the 'pw usermod' command.
 See config.inc.php.dist file for configuration description.
 2.15.  domainFACTORY (domainfactory)
 -----------------------------------
 Driver for the hosting provider domainFACTORY (www.df.eu).
 No configuration options.
 2.16.  DBMail (dbmail)
 -----------------------------------
 Driver that adds functionality to change the users DBMail password.
 It only works with dbmail-users on the same host where Roundcube runs
 and requires shell access and gcc in order to compile the binary
 (see instructions in chgdbmailusers.c file).
 See config.inc.php.dist file for configuration description.
 Note: DBMail users can also use sql driver.
 2.17.  Expect (expect)
 -----------------------------------
 Driver to change user password via the 'expect' command.
 See config.inc.php.dist file for configuration description.
 2.18.  Samba (smb)
 -----------------------------------
 Driver to change Samba user password via the 'smbpasswd' command.
 See config.inc.php.dist file for configuration description.
 3. Driver API
@@ -195,6 +303,7 @@
 Driver file (<driver_name>.php) must define 'password_save' function with
 two arguments. First - current password, second - new password. Function
 may return PASSWORD_SUCCESS on success or any of PASSWORD_CONNECT_ERROR,
 should return PASSWORD_SUCCESS on success or any of PASSWORD_CONNECT_ERROR,
 PASSWORD_CRYPT_ERROR, PASSWORD_ERROR when driver was unable to change password.
 See existing drivers in drivers/ directory for examples.
 Extended result (as a hash-array with 'message' and 'code' items) can be returned
 too. See existing drivers in drivers/ directory for examples.