[horde] Dynamic, Minimalist, Traditional selection?

Jan Schneider jan at horde.org
Fri Oct 10 09:18:23 UTC 2008


Zitat von horde at corwyn.net:

> Well, this idea is brilliant. I do have a few questions. The wiki says
> "Next we need to select the correct drivers for the different  
> purposes of the authentication API. The driver gets selected by the  
> name we used in the last step. There are currently three possible  
> switches for selecting a driver: "
>
> but I only see two options after that? Should there be a third, or  
> are there only two?

I have no idea why I wrote "three" there. There are only two, and even  
only one is documented in the howto at all. We should add some  
information about the user name switch too.

> I can understand (great instructions!) how to define mysql as one of  
> the drivers, and application for the other. I can see how to set the  
> login driver to be one or the other, and pick which one actually  
> determines who the horde admins are (although I don't quite  
> understand, because horde admins I thought were defined by  
> $conf['auth']['admins'].   (Copy of my config below my name.)

That looked like a typo. It's about "administration", not "administrators".

> I see the login driver needs to be the application driver to trigger  
> the choices for Dyn, Min, and Trad, yes?.  How does everything else  
> know what to pick?
>
> Questions aside, all of that appears to work swimmingly even if I  
> have no idea how. I can log in, get the options, and yet still pick  
> the Users tab and modify users. cool.
>
> I do still have one thing I'm stuck on. I finally got the sql right  
> to update the mailbox table (from postfixadmin) for the domains (at  
> least if your user IDs are user at example.com). But I need to update  
> TWO tables when working with postfixadmin in the background (as I  
> also have to update the "alias" table). I tried just appending the  
> second query to the primary query (as query1; query2;) , but the sql  
> function in horde submits it as all one big SQL query.
>
> Possible, or have I finally stretched things too far?

No, Horde can stretch even more. :) You can achieve that by creating a  
_horde_hook_signup_addextra hook. If you've gone through that, it  
would great if you could add instructions to the howto.

> //composite of mysql and application driver
> $conf['auth']['driver'] = 'composite';
> //composite mysql driver
> $conf['auth']['params']['drivers']['customsql_mod']['driver'] = 'customsql';
> $conf['auth']['params']['drivers']['customsql_mod']['params'] = array(
> 'phptype' => 'mysqli',
> 'protocol' => 'unix',
> 'hostspec' => 'localhost',
> 'username' => 'postfix',
> 'password' => 'pfix1723',
> 'database' => 'postfix',
> 'query_auth' => 'SELECT * FROM mailbox WHERE username = \L and  
> password=\P; ',
> 'query_add' => 'INSERT INTO mailbox  
> (username,password,maildir,quota,domain,created,modified) VALUES  
> (\L, \P, CONCAT(RIGHT(\L, (LENGTH(\L)-(INSTR(\L, \'@\')))), \'/\',  
> LEFT(\L, INSTR(\L,\'@\')-1) , \'/\') ,\'512000000\', RIGHT(\L,  
> (LENGTH(\L)-(INSTR(\L, \'@\')))), now(), now());',
> 'query_getpw' => 'SELECT password FROM mailbox WHERE username = \L;',
> 'query_update' => 'UPDATE mailbox SET username = \L WHERE username =  
> \O) LIMIT 1;',
> 'query_resetpassword' => 'UPDATE mailbox SET password = \P WHERE  
> username = \L;',
> 'query_remove' => 'DELETE FROM mailbox WHERE username = \L;',
> 'query_list' => 'SELECT * FROM mailbox;',
> 'query_exists' => 'SELECT 1 FROM mailbox WHERE username = \L;',
> 'encryption' => 'crypt-md5',
> 'show_encryption' => false);
> //composite application driver
> $conf['auth']['params']['drivers']['application_mod']['driver'] =  
> 'application';
> $conf['auth']['params']['drivers']['application_mod']['params'] = array(
>    'app' => 'imp');
> //selecting the login driver
> $conf['auth']['params']['admin_driver'] = 'customsql_mod';
> $conf['auth']['params']['loginscreen_switch'] = '_horde_select_loginscreen';
> if (!function_exists('_horde_select_loginscreen')) {
>     function _horde_select_loginscreen()
>     {
>         return 'application_mod';
>     }
> }
>
>
> At 07:50 PM 10/9/2008, Jan Schneider wrote:
>> 2b. Use composite authentication.
>



Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the horde mailing list