From 19fd0e793aeef903d87ae9999168fd23591b955b Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Fri, 28 Nov 2008 16:43:56 +0000 Subject: [PATCH] IMAP folder separator option --- ldap-useradmin/CHANGELOG | 2 ++ ldap-useradmin/config | 1 + ldap-useradmin/config-*-linux | 1 + ldap-useradmin/config-coherent-linux | 1 + ldap-useradmin/config-debian-linux | 1 + ldap-useradmin/config-debian-linux-3.1 | 1 + ldap-useradmin/config-debian-linux-4.0-* | 1 + ldap-useradmin/config-debian-squirrelmail-linux | 1 + ldap-useradmin/config-macos | 1 + ldap-useradmin/config-mandrake-linux | 1 + ldap-useradmin/config-redhat-linux | 1 + ldap-useradmin/config-sol-linux | 1 + ldap-useradmin/config-suse-linux | 1 + ldap-useradmin/config-trustix-linux | 1 + ldap-useradmin/config-united-linux | 1 + ldap-useradmin/config.info | 1 + ldap-useradmin/ldap-useradmin-lib.pl | 14 +++++++------- 17 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ldap-useradmin/CHANGELOG b/ldap-useradmin/CHANGELOG index d23a10a86..2e435b435 100644 --- a/ldap-useradmin/CHANGELOG +++ b/ldap-useradmin/CHANGELOG @@ -61,3 +61,5 @@ Added support for LDAP SSHA passwords, thanks to Bill Moyers and John Gray. ---- Changes since 1.430 ---- The order of the first name and surname in the real name can be changed by a new Module Config setting. Coverted all pages to use the new Webmin UI library, for a more consistent look. Also updated the groups chooser to use a left-right selector. +---- Changes since 1.440 ---- +Added a Module Config option to allow / as an IMAP folder separator, thanks to Bas van den Heuvel. diff --git a/ldap-useradmin/config b/ldap-useradmin/config index 1c1412c26..3924048a2 100644 --- a/ldap-useradmin/config +++ b/ldap-useradmin/config @@ -18,3 +18,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-*-linux b/ldap-useradmin/config-*-linux index 6ba25cf68..0a80331e5 100644 --- a/ldap-useradmin/config-*-linux +++ b/ldap-useradmin/config-*-linux @@ -18,3 +18,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-coherent-linux b/ldap-useradmin/config-coherent-linux index a30574d80..80719cb41 100644 --- a/ldap-useradmin/config-coherent-linux +++ b/ldap-useradmin/config-coherent-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-debian-linux b/ldap-useradmin/config-debian-linux index a8a304e8f..bad8fb48f 100644 --- a/ldap-useradmin/config-debian-linux +++ b/ldap-useradmin/config-debian-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-debian-linux-3.1 b/ldap-useradmin/config-debian-linux-3.1 index 253b7cfb4..96f0b66a3 100644 --- a/ldap-useradmin/config-debian-linux-3.1 +++ b/ldap-useradmin/config-debian-linux-3.1 @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-debian-linux-4.0-* b/ldap-useradmin/config-debian-linux-4.0-* index ae3bf41d0..be543621c 100644 --- a/ldap-useradmin/config-debian-linux-4.0-* +++ b/ldap-useradmin/config-debian-linux-4.0-* @@ -17,3 +17,4 @@ alias_same=0 other_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-debian-squirrelmail-linux b/ldap-useradmin/config-debian-squirrelmail-linux index 0017cb6c0..052af9cc6 100644 --- a/ldap-useradmin/config-debian-squirrelmail-linux +++ b/ldap-useradmin/config-debian-squirrelmail-linux @@ -23,3 +23,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-macos b/ldap-useradmin/config-macos index 926990ada..81c226066 100644 --- a/ldap-useradmin/config-macos +++ b/ldap-useradmin/config-macos @@ -18,3 +18,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-mandrake-linux b/ldap-useradmin/config-mandrake-linux index a30574d80..80719cb41 100644 --- a/ldap-useradmin/config-mandrake-linux +++ b/ldap-useradmin/config-mandrake-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-redhat-linux b/ldap-useradmin/config-redhat-linux index a30574d80..80719cb41 100644 --- a/ldap-useradmin/config-redhat-linux +++ b/ldap-useradmin/config-redhat-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-sol-linux b/ldap-useradmin/config-sol-linux index a30574d80..80719cb41 100644 --- a/ldap-useradmin/config-sol-linux +++ b/ldap-useradmin/config-sol-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-suse-linux b/ldap-useradmin/config-suse-linux index 8611a861c..9084f59aa 100644 --- a/ldap-useradmin/config-suse-linux +++ b/ldap-useradmin/config-suse-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-trustix-linux b/ldap-useradmin/config-trustix-linux index 8611a861c..9084f59aa 100644 --- a/ldap-useradmin/config-trustix-linux +++ b/ldap-useradmin/config-trustix-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config-united-linux b/ldap-useradmin/config-united-linux index 8611a861c..9084f59aa 100644 --- a/ldap-useradmin/config-united-linux +++ b/ldap-useradmin/config-united-linux @@ -17,3 +17,4 @@ alias_same=0 given_class=inetOrgPerson person=1 given_order=0 +imap_foldersep=. diff --git a/ldap-useradmin/config.info b/ldap-useradmin/config.info index 8396c203f..383fde56f 100644 --- a/ldap-useradmin/config.info +++ b/ldap-useradmin/config.info @@ -72,6 +72,7 @@ imap_pass=Administration password for IMAP server,0 imap_props=LDAP properties for new IMAP users,9,40,5,\t imap_folders=Folders to create for new IMAP users,9,30,3,\t imap_folderalt=Path for folders,1,1-user.$user.$folder,0-$folder +imap_foldersep=Folder separator,1,.-.,/-/ domain=Email domain for mail attribute,0,Don't add mail attributes mailfmt=Email address format,1,0-firstname.surname@domain,1-username@domain addressbook=Address book base,3,None diff --git a/ldap-useradmin/ldap-useradmin-lib.pl b/ldap-useradmin/ldap-useradmin-lib.pl index bd2dad343..f3e5364e2 100644 --- a/ldap-useradmin/ldap-useradmin-lib.pl +++ b/ldap-useradmin/ldap-useradmin-lib.pl @@ -871,26 +871,26 @@ local ($user, $quota) = @_; # Check if the user already exists local $imap = &imap_connect(); -local $rv = $imap->status("user.".$user->{'user'}, "messages"); +local $rv = $imap->status("user".$user{'imap_foldersep'}.$user->{'user'}, "messages"); if ($rv->{'Status'} eq 'ok') { # Already exists, so do nothing $imap->logout(); } else { # Create the user on the IMAP server - $rv = $imap->create("user.".$user->{'user'}); + $rv = $imap->create("user".$config{'imap_foldersep'}.$user->{'user'}); $rv->{'Status'} eq 'ok' || &imap_error($text{'usave_eicreate'}, $rv); # Grant all rights to admin user - $rv = $imap->setacl("user.".$user->{'user'}, + $rv = $imap->setacl("user".$config{'imap_foldersep'}.$user->{'user'}, $config{'imap_login'}, "lrswipcda"); $rv->{'Status'} eq 'ok' || &imap_error($text{'usave_eiacl'}, $rv); if (defined($quota)) { # Set his IMAP quota - $rv = $imap->setquota("user.".$user->{'user'}, + $rv = $imap->setquota("user".$config{'imap_foldersep'}.$user->{'user'}, "STORAGE", $quota); $rv->{'Status'} eq 'ok' || &imap_error($text{'usave_eiquota'}, $rv); @@ -909,7 +909,7 @@ else { foreach $f (split(/\t+/, $config{'imap_folders'})) { local $fp = $config{'imap_folderalt'} ? - "user.$user->{'user'}.$f" : $f; + "user$config{'imap_foldersep'}$user->{'user'}$config{'imap_foldersep'}$f" : $f; $rv = $uimap->create($fp); $rv->{'Status'} eq 'ok' || &imap_error(&text('usave_eifolder',$f),$rv); @@ -933,10 +933,10 @@ local ($user, $quota) = @_; # Check if the user already exists local $imap = &imap_connect(); -local $rv = $imap->status("user.".$user->{'user'}, "messages"); +local $rv = $imap->status("user".$config{'imap_foldersep'}.$user->{'user'}, "messages"); if ($rv->{'Status'} eq 'ok') { # Set his IMAP quota - $rv = $imap->setquota("user.".$user->{'user'}, + $rv = $imap->setquota("user".$config{'imap_foldersep'}.$user->{'user'}, "STORAGE", $quota); $rv->{'Status'} eq 'ok' || &imap_error($text{'usave_eiquota'}, $rv);