Author: varkoly Date: Mon Jan 28 11:49:43 2008 New Revision: 43939 URL: http://svn.opensuse.org/viewcvs/yast?rev=43939&view=rev Log: initial version of canonocal tables Modified: trunk/mail/src/YaPI/MailServer.pm trunk/mail/src/suse-mailserver.schema Modified: trunk/mail/src/YaPI/MailServer.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/mail/src/YaPI/MailServer.pm?rev=43939&r1=43938&r2=43939&view=diff ============================================================================== --- trunk/mail/src/YaPI/MailServer.pm (original) +++ trunk/mail/src/YaPI/MailServer.pm Mon Jan 28 11:49:43 2008 @@ -423,6 +423,71 @@ } =item * +C<$Canonical = ReadCanonical($AdminPassword)> + + Dump the mail-server Mail Transport to a single hash + @return hash Dumped settings (later acceptable by WriteCanonical ()) + +=cut + +BEGIN { $TYPEINFO{ReadCanonical} =["function", ["map", "string", "any"] , "string"]; } +sub ReadCanonical +{ + my $self = shift; + my $AdminPassword = shift; + + + my %Canonicals = ( + 'Changed' => YaST::YCP::Boolean(0), + 'CanonicalTable' => [], + 'CanonicalClasses' => [] + ); + + + # Make LDAP Connection + my $ldapMap = $self->ReadLDAPDefaults($AdminPassword); + if( !$ldapMap ) + { + return undef; + } + my $MainCf = SCR->Read('.mail.postfix.main.table'); + my $CanonicalClasses = read_attribute($MainCf,'transport_maps'); + $CanonicalClasses =~ s/ //g; + $Canonical{CanonicalClasses} = split /,/,$CanonicalClasses; + + my %SearchMap = ( + 'base_dn' => $ldapMap->{'mail_config_dn'}, + 'filter' => "ObjectClass=suseCanonicalTable", + 'scope' => 2, + 'map' => 1, + 'attributes' => ['tableKey', + 'tableValue', + 'valueType', + 'description' ] + ); + + + # Searching all the transport lists + my $ret = SCR->Read('.ldap.search',\%SearchMap); + + # filling up our array + foreach my $dn (keys %{$ret}) + { + my $Canonical = {}; + $Canonical->{'key'} = $ret->{$dn}->{'tablekey'}->[0]; + $Canonical->{'value'} = $ret->{$dn}->{'tablevalue'}->[0]; + $Canonical->{'type'} = $ret->{$dn}->{'valuetype'}->[0]; + if( defined $ret->{$dn}->{'description'}->[0] ) + { + ($Canonical->{'description'} = $ret->{$dn}->{'description'}->[0]; + } + push @{$Canonicals{'CanonicalTable'}}, $Canonical; + } + #now we return the result + return \%Canonicals; +} + +=item * C<$MailTransports = ReadMailTransports($AdminPassword)> Dump the mail-server Mail Transport to a single hash @@ -2811,7 +2876,10 @@ 'mynetworks' => '(&(objectclass=suseMailMyNetworks)(suseMailClient=%s))', 'masquerade_domains' => '(&(objectclass=suseMailDomain)(zoneName=%s)(suseMailDomainMasquerading=yes))', 'mydestination' => '(&(objectclass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(!(suseMailDomainType=virtual)))', - 'virtual_alias_maps' => '(&(objectclass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(suseMailDomainType=virtual))' + 'virtual_alias_maps' => '(&(objectclass=suseMailDomain)(zoneName=%s)(relativeDomainName=@)(suseMailDomainType=virtual))', + 'canonical_maps' => '(&(objectclass=suseCanonicalTable)(tableKey=%s)(valueType=both))', + 'recipient_canonical_maps' => '(&(objectclass=suseCanonicalTable)(tableKey=%s)(valueType=recipient))', + 'sender_canonical_maps' => '(&(objectclass=suseCanonicalTable)(tableKey=%s)(valueType=sender))' ); my %result_attribute = ( 'transport_maps' => 'suseMailTransportNexthop', @@ -2823,7 +2891,10 @@ 'mynetworks' => 'suseMailClient', 'masquerade_domains' => 'zoneName', 'mydestination' => 'zoneName', - 'virtual_alias_maps' => 'zoneName' + 'virtual_alias_maps' => 'zoneName', + 'canonical_maps' => 'tableValue', + 'recipient_canonical_maps' => 'tableValue', + 'sender_canonical_maps' => 'tableValue' ); my %scope = ( 'transport_maps' => 'one', @@ -2835,7 +2906,10 @@ 'mynetworks' => 'one', 'masquerade_domains' => 'sub', 'mydestination' => 'sub', - 'virtual_alias_maps' => 'sub' + 'virtual_alias_maps' => 'sub', + 'canonical_maps' => 'one', + 'recipient_canonical_maps' => 'one', + 'sender_canonical_maps' => 'one' ); my %base = ( 'transport_maps' => $ldapMap->{'mail_config_dn'}, @@ -2847,7 +2921,10 @@ 'mynetworks' => $ldapMap->{'mail_config_dn'}, 'masquerade_domains' => $ldapMap->{'dns_config_dn'}, 'mydestination' => $ldapMap->{'dns_config_dn'}, - 'virtual_alias_maps' => $ldapMap->{'dns_config_dn'} + 'virtual_alias_maps' => $ldapMap->{'dns_config_dn'}, + 'canonical_maps' => $ldapMap->{'mail_config_dn'}, + 'recipient_canonical_maps' => $ldapMap->{'mail_config_dn'}, + 'sender_canonical_maps' => $ldapMap->{'mail_config_dn'} ); my %special_result_attribute = ( 'alias_maps_member' => 'member', Modified: trunk/mail/src/suse-mailserver.schema URL: http://svn.opensuse.org/viewcvs/yast/trunk/mail/src/suse-mailserver.schema?rev=43939&r1=43938&r2=43939&view=diff ============================================================================== --- trunk/mail/src/suse-mailserver.schema (original) +++ trunk/mail/src/suse-mailserver.schema Mon Jan 28 11:49:43 2008 @@ -122,6 +122,24 @@ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +attributetype ( MailAT:19 NAME ( 'tableKey') + DESC 'Shows the imap quota of a user.' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} + SINGLE-VALUE ) + +attributetype ( MailAT:20 NAME ( 'tableValue') + DESC 'Shows the imap quota of a user.' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} + SINGLE-VALUE ) + +attributetype ( MailAT:21 NAME ( 'valueType') + DESC 'Shows the imap quota of a user.' + EQUALITY caseIgnoreMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} + SINGLE-VALUE ) + ## ## Objectclass Section ## @@ -154,3 +172,8 @@ DESC 'To build TLS per side maps' MUST ( suseTLSPerSiteMode $ suseTLSPerSitePeer ) ) +objectclass ( MailOC:7 NAME ( 'suseCanonicalTable' 'CanonicalTable' ) SUP top STRUCTURAL + DESC 'To build canonical maps' + MUST ( tableKey $ tableValue ) + MAY ( valueType $ description ) ) + -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org