[imp] Re: virtual hosting based on ldap info

Caylan Van Larson caylan at cs.und.edu
Tue Jul 29 13:05:44 PDT 2003


Eh,

I'll just clean it up and just place the appropriate hooks in 
imp/config/conf.php.  I just hope it changes the welcome screen too.

Heh heh,


Caylan

On Tue, 29 Jul 2003, Caylan Van Larson wrote:

> Hi,
> 
> Here at school we have user at cs.und.edu and user at aero.und.edu accounts.  
> The previous two addresses are identical and mail is accepted for both 
> addresses and delivered to "user."
> 
> Most users dont care to understand this concept and think that their email 
> address is "wrong" when the domain is not as expected.  Thus, I have to 
> come up with a way to have their from address (maildomain/realm) change 
> based on some ldap information, easiest being their home directories 
> because of how we split compsci and avit students.
> 
> Code placed in imp/config/servers.php will allow me to change 
> maildomain/realm based on variables available *before* a user ever types 
> in their username.
> 
> Here is my code:
> --SNIP
> // Connect to the ldap server.
> ....
> 
> // Identifiers and vdomains.
> $vdomains['Sirius'] = 'aero.und.edu';
> $vdomains['Agassiz'] = 'cs.und.edu';
> 
> // Default vdomain
> $vdomain = 'aero.und.edu';
> 
> if( $hack_ldap_resource )
> {
>     $hack_ldap_user = $_REQUEST['imapuser'];
>     $hack_ldap_basedn = 'ou=people,dc=aero,dc=und,dc=edu';
>     $hack_ldap_search = 'uid='.$hack_ldap_user;
>     $hack_ldap_results = ldap_search($hack_ldap, $hack_ldap_basedn, $hack_ldap_search);
>     $hack_ldap_info = ldap_get_entries($hack_ldap, $hack_ldap_results);
>     $hack_ldap_homedir = $hack_ldap_info[0]['homedirectory'][0];
> 
>     foreach( $vdomains as $vdomain_key => $vdomain_value )
>     {
>         //echo "Searching for $vdomain_key in $hack_ldap_homedir...";
>         if( preg_match("/$vdomain_key/", $hack_ldap_homedir) )
>         {
>             //echo "FOUND!<br>";
>             $vdomain = $vdomains[$vdomain_key];
>             //echo "Vdomain set to $vdomain<br>";
>             break;
>         }
>         //echo "<br>";
>     }
> }
> --SNAP
> 
> So here are two questions:
> 
> 1) Where can I put this code so I can effectively change maildomain/realm 
> while still being able to access the username provided at the initial form?
> 
> 2) Instead, is there a configuration that will only allow usernames in the 
> form "username at example.com" then set the maildomain/realm according to the 
> address provided?  (And only allow a certain set of domains?)
> 
> The trouble with #2 is students will have access to both type of accounts 
> because horde/imp stores them under different accounts thus different 
> preferences for the same email address.
> 
> Thanks,
> 
> 
> 
> Caylan Van Larson
> Unix Administrator - Systems Team Member
> University of North Dakota (Aerospace College)
> caylan at cs.und.edu
> 701-777-6151 (work)
> 
> 



More information about the imp mailing list