Lines 2084-2089
Link Here
|
2084 |
|
2084 |
|
2085 |
if ($prefsfrom eq $suidto) { |
2085 |
if ($prefsfrom eq $suidto) { |
2086 |
$userdir = $suiddir; # reuse the already-looked-up info |
2086 |
$userdir = $suiddir; # reuse the already-looked-up info |
|
|
2087 |
} elsif ( $opt{'vpopmail'} ) { |
2088 |
# |
2089 |
# If vpopmail config enabled then set $userdir to virtual homedir |
2090 |
# |
2091 |
my $vpopdir = $suiddir; # This should work with common vpopmail setups |
2092 |
$userdir = `$vpopdir/bin/vuserinfo -d \Q$username\E`; |
2093 |
if ($? != 0) { |
2094 |
# |
2095 |
# If vuserinfo failed $username could be an alias |
2096 |
# |
2097 |
$userdir = `$vpopdir/bin/valias \Q$username\E`; |
2098 |
if ($? == 0) { |
2099 |
if ($userdir =~ /.+ -> &(.+)/) { |
2100 |
# |
2101 |
# another alias - it could point to an alias again, but we'll try to resolve it only once |
2102 |
# |
2103 |
$userdir = `$vpopdir/bin/vuserinfo -d \Q$1\E`; |
2104 |
} |
2105 |
$userdir =~ s,.+ -> (/.+)/Maildir/,$1,; |
2106 |
} else { |
2107 |
undef($userdir); |
2108 |
} |
2109 |
} |
2110 |
chomp($userdir); |
2087 |
} else { |
2111 |
} else { |
2088 |
$userdir = (getpwnam($prefsfrom))[7]; |
2112 |
$userdir = (getpwnam($prefsfrom))[7]; |
2089 |
} |
2113 |
} |
Lines 2108-2132
Link Here
|
2108 |
sub handle_user_set_user_prefs { |
2132 |
sub handle_user_set_user_prefs { |
2109 |
my ($dir, $username) = @_; |
2133 |
my ($dir, $username) = @_; |
2110 |
|
2134 |
|
2111 |
# If vpopmail config enabled then set $dir to virtual homedir |
|
|
2112 |
# |
2113 |
if ( $opt{'vpopmail'} ) { |
2114 |
my $vpopdir = $dir; |
2115 |
$dir = `$vpopdir/bin/vuserinfo -d \Q$username\E`; |
2116 |
if ($? != 0) { |
2117 |
# |
2118 |
# If vuserinfo failed $username could be an alias |
2119 |
# |
2120 |
$dir = `$vpopdir/bin/valias \Q$username\E`; |
2121 |
if ($? == 0 && $dir !~ /.+ -> &/) { |
2122 |
$dir =~ s,.+ -> (/.+)/Maildir/,$1,; |
2123 |
} else { |
2124 |
undef($dir); |
2125 |
} |
2126 |
} |
2127 |
chomp($dir); |
2128 |
} |
2129 |
|
2130 |
# don't do this if we weren't passed a directory |
2135 |
# don't do this if we weren't passed a directory |
2131 |
if ($dir) { |
2136 |
if ($dir) { |
2132 |
my $cf_file = $dir . "/.spamassassin/user_prefs"; |
2137 |
my $cf_file = $dir . "/.spamassassin/user_prefs"; |