[sork] Passwd 4 hook problem
Jan Schneider
jan at horde.org
Sun Nov 20 14:01:28 UTC 2011
Zitat von "Kinglok, Fong" <busywater at gmail.com>:
> 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?
http://wiki.horde.org/FAQ/Admin/Troubleshoot#wsod
Though it shouldn't be necessary to go through all composited drivers
in the hook. At least I would say it's a bug if you have to.
> 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' => '',
> ),
> ),
> }
> }
> }
> --
> Sork mailing list - Join the hunt: http://horde.org/bounties/#sork
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: sork-unsubscribe at lists.horde.org
Jan.
--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/
More information about the sork
mailing list