{ $OUT = ''; my (undef, undef, $uid, $gid, undef, undef, undef, $dir, undef) = getpwnam("alias"); unless (defined $uid && defined $gid && defined $dir) { my $msg = "Failed to obtain user details for \'alias\' " . "while processing pseudonym assignments."; warn "$msg\n"; $OUT = $msg; return; } my $alias_assign = "alias:${uid}:${gid}:${dir}"; undef $uid; undef $gid; undef $dir; use esmith::AccountsDB; my $adb = esmith::AccountsDB->open_ro(); foreach $pseudonym ( $adb->pseudonyms ) { next if ( $pseudonym->key =~ /@/ ); # user@domain goes in virtualdomains my $account = $pseudonym->prop('Account'); unless ($account) { my $key = $pseudonym->key; warn "pseudonym $key has no account property"; next; } $account = $adb->get($pseudonym->prop('Account')); unless ($account) { my $key = $pseudonym->key; warn "pseudonym $key points to account which does not exist"; next; } if ($account->prop('type') eq "minilist") { $OUT .= "=" . $pseudonym->key . ":${alias_assign}:-:" . $account->key . ":\n"; $OUT .= "+" . $pseudonym->key . "-:${alias_assign}:-:" . $account->key . ":\n"; next; } } chomp($OUT); $OUT = "=alias:${alias_assign}:::" unless $OUT; }