[sork] Passwd 4 hook problem
Ralf Lang
lang at b1-systems.de
Sun Nov 20 14:10:43 UTC 2011
Am Samstag, 19. November 2011, 19:20:23 schrieb Kinglok, Fong:
> I am using horde 4.0.11, IMP 5.0.14. Horde authentication is done by SQL.
> I also make use of horde username hook. IMP login is done by configuring
> the backends.php.
>
> I would like to use Passwd to update both passwords of horde and email
> backend (running vpopmail). Therefore, horde (user) and vpopmail (
> user at example.com) have to be updated in the same time. It seems me that
> hook of Passwd must be used.
>
> My method is to strip the domain from $userid in function username and then
> add the domain back if the backend is 'expect'.
>
> However, the screen just turn white whenever I try to reset a user's
> password. After some investigation, I believe the problem is from the
> statement: foreach ($driver->_params['drivers'] as $backend =>
> $config) {
>
> Any comment?
>
> Kinglok, Fong
>
> */var/www/html/webmail/passwd/hook.php*
> =================================
> class Passwd_Hooks
> {
> /**
> * Username hook.
> *
> * @param string $userid The username.
> * @param TODO $driver TODO
> *
> * @return string TODO
> */
> public function username($userid, $driver)
> {
> * $userid = substr($userid,0,strpos($userid,"@"));
> *
> if ($driver instanceof Passwd_Driver_Expect) {
> return $userid . '@example.com';
> }
>
> if ($driver instanceof Passwd_Driver_Composite) {
> foreach ($driver->_params['drivers'] as $backend => $config) {
> if ($backend == 'expect') {
>
> $driver->_params['drivers']['expect']['params']['be_username'] = $userid .
> '@example.com';
> break;
> }
> }
> }
> return $userid;
> }
> }
> =============================================
>
> */var/www/html/webmail/passwd/backends.php*
> ========================
> <?php
> $backends['composite'] = array(
> 'name' => 'All Services',
> 'preferred' => '',
> 'password policy' => array(
> 'minLength' => 3,
> 'maxLength' => 20,
> //'minClasses' => 2,
> ),
> 'driver' => 'composite',
> 'params' => array(
> 'drivers' => array(
> 'sql' => array(
> 'name' => 'Horde Authentication',
> 'driver' => 'Sql',
> 'required' => true,
> 'params' => array(
> 'phptype' => 'mysql',
> 'hostspec' => 'localhost',
> 'username' => 'hordeuser',
> 'password' => 'XXXXXXXXXXX',
> 'encryption' => 'plain',
> 'database' => 'horde4',
> 'table' => 'horde_users',
> 'user_col' => 'user_uid',
> 'pass_col' => 'user_pass',
> 'show_encryption' => false
> // 'query_lookup' => '',
> // 'query_modify' => '',
> ),
> ),
> 'expect' => array(
> 'name' => 'Webmail Password',
> 'preferred' => '',
> 'driver' => 'expect',
> 'required' => true,
> 'params' => array(
> 'program' => '/usr/bin/expect',
> 'script' => dirname(__FILE__) .
> '/../scripts/vpopmail_cdb_expect',
> 'be_username' => '',
> ),
> ),
> }
> }
> }
Youse the composite backend.
--
Ralf Lang
Linux Consultant / Developer
Tel.: +49-170-6381563
Mail: lang at b1-systems.de
B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / http://www.b1-systems.de
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt,HRB 3537
More information about the sork
mailing list