[horde] Horde 4 and custom passwd driver
Peter Meier
peter.meier at immerda.ch
Mon Mar 19 13:59:47 UTC 2012
>> to treat my driver the same way as the Sql driver.
>>>
>>> To me this seems to be a clumsy and I wondered how custom drivers
>>> should be implemented correctly in Horde 4, without having to
>>> touch passwd core code?
>>>
>>
>> Are you talking about a custom passwd backend or a custom auth driver?
>> How would you indicate to the factory that your 3rd party driver needs
>> an sql instance?
>
> I guess this is exactly his question. And the answer is: you can't.
> You have to pull in the dependencies manually, e.g. $db =
> $GLOBALS['injector']->getInstance('Horde_Db_Adapter'), inside the
> custom driver.
Thanks for your answer. With that hint, I was able to understand more
how things work together and I'm able to use my custom driver without
any modification in the core.
Currently I do the following in backends.local.php:
---
$backends['sql'] = array (
'disabled' => false,
'name' => 'mail',
'preferred' => '',
'password policy' => array(
'minLength' => 8,
'maxLength' => 128,
'maxSpace' => 10,
'minUpper' => 1,
'minLower' => 1,
'minNumeric' => 1,
'minSymbols' => 1
),
'driver' => 'Sqlbcrypt',
'params' => array(
'phptype' => 'pgsql',
'hostspec' => 'somehost',
'username' => 'horde_pw_change',
'password' => 'somepass',
'database' => 'mail',
'table' => 'email_users',
'user_col' => '"alias"||\'@\'||"domain"',
'pass_col' => 'password_crypt',
'show_encryption' => true
)
);
$params = $backends['sql']['params'];
unset($params['table'], $params['user_col'], $params['pass_col'],
$params['encryption'], $params['show_encryption']);
$backends['sql']['params']['db'] =
$GLOBALS['injector']->getInstance('Horde_Core_Factory_Db')->create('passwd',
$params);
---
Actually I could probably do the 'db' setup already in the sql-backend
configuration itself, by passing the necessary params already there.
But I'm going to test that later.
~pete
More information about the horde
mailing list