# HG changeset patch # User Matthias Förste foerste@schlittermann.de # Date 1323639393 -3600 # Node ID df896a01960dba9cc9b013ae52322665a83a00da # Parent dd04534fe595ed490e67d441d28aaf3a38e581a7 added support for acl groups; acc --modify may update quota now diff -r dd04534fe595 -r df896a01960d Common.pm --- a/Common.pm Sun Dec 11 11:48:25 2011 +0100 +++ b/Common.pm Sun Dec 11 22:36:33 2011 +0100 @@ -37,6 +37,8 @@ imap_password => { ARGS => "=s" }, imap_quota => { ARGS => "=i", DEFAULT => 300 * 1024 * 1024, ALIAS => "quota" }, + imap_aclgroups => + { ARGS => "=s", ALIAS => "aclgroups" }, # dovecots mail_location (%1, %u & %d supported) imap_mail_location => @@ -82,6 +84,7 @@ ldap_at_address => { ARGS => "=s", DEFAULT => "XXXmailAddress" }, ldap_at_group => { ARGS => "=s", DEFAULT => "XXXmailGroup" }, ldap_at_quota => { ARGS => "=s", DEFAULT => "XXXmailQuota" }, + ldap_at_aclgroups => { ARGS => "=s", DEFAULT => "XXXmailACLGroups" }, ldap_at_forwardingaddress => { ARGS => "=s", DEFAULT => "XXXmailForwardingAddress" }, ldap_at_primaryaddress => diff -r dd04534fe595 -r df896a01960d account.pm --- a/account.pm Sun Dec 11 11:48:25 2011 +0100 +++ b/account.pm Sun Dec 11 22:36:33 2011 +0100 @@ -36,6 +36,7 @@ sub AT_GROUP(); sub AT_FORWARDINGADDRESS(); sub AT_QUOTA(); +sub AT_ACLGROUPS(); sub import(@) { $Cf = shift; @@ -49,6 +50,7 @@ import constant AT_GROUP => $Cf->ldap_at_group; import constant AT_FORWARDINGADDRESS => $Cf->ldap_at_forwardingaddress; import constant AT_QUOTA => $Cf->ldap_at_quota; + import constant AT_ACLGROUPS => $Cf->ldap_at_aclgroups; $ubase = OU_ACCOUNTS . "," . $Cf->ldap_base; $abase = OU_ALIASES . "," . $Cf->ldap_base; @@ -164,6 +166,7 @@ $e->add( (AT_FORWARDINGADDRESS) => $mailForwardingAddress ) if @$mailForwardingAddress; $e->add( (AT_QUOTA) => $Cf->imap_quota ); + $e->add( (AT_ACLGROUPS) => $Cf->imap_aclgroups ) if $Cf->imap_aclgroups; # $e->add(iusRestrictedMail => $Cf->internal) if $Cf->internal ne ":"; @@ -313,6 +316,16 @@ $modified++; } + if ( defined $Cf->quota ) { + $e->replace( (AT_QUOTA) => $Cf->quota ); + $modified++; + } + + if ( defined $Cf->aclgroups ) { + $e->replace( (AT_ACLGROUPS) => $Cf->aclgroups ); + $modified++; + } + if ( my $a = $Cf->primary ) { $r = $ldap->search( base => $ubase, @@ -436,6 +449,7 @@ my $ml = join( ", ", $e->get_value(AT_ADDRESS) ) || ""; # ?? my $mg = join( ", ", $e->get_value(AT_GROUP) ) || ""; # ?? my $forw = join( ", ", $e->get_value(AT_FORWARDINGADDRESS) ) || ""; + my $ag = $e->get_value(AT_ACLGROUPS); print "$uid: $cn <$mr>"; @@ -506,6 +520,7 @@ print wrap( "\t", "\t\t", "Other Adresses: $ml\n" ) if $ml; print wrap( "\t", "\t\t", "Mail Groups: $mg\n" ) if $mg; print wrap( "\t", "\t\t", "Forwardings: $forw\n" ) if $forw; + print wrap( "\t", "\t\t", "ACL Groups: $ag\n" ) if $ag; } }