Bug 52453

isprimary


git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@401 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vfilippov 2009-09-11 13:52:21 +00:00
parent f5ab3701fe
commit a371351ff2
2 changed files with 12 additions and 9 deletions

View File

@ -23,11 +23,12 @@ $schema->{emailin_fields} = {
$schema->{emailin_aliases} = {
FIELDS => [
address => {TYPE => 'varchar(255)', NOTNULL => 1},
userid => {TYPE => 'INT3', NOTNULL => 1,
REFERENCES => {TABLE => 'profiles',
COLUMN => 'userid'}},
fromldap => {TYPE => 'BOOLEAN'},
address => {TYPE => 'varchar(255)', NOTNULL => 1},
userid => {TYPE => 'INT3', NOTNULL => 1,
REFERENCES => {TABLE => 'profiles',
COLUMN => 'userid'}},
fromldap => {TYPE => 'BOOLEAN'},
isprimary => {TYPE => 'BOOLEAN'},
],
INDEXES => [
emailin_aliases_address => { FIELDS => ['address'], TYPE => 'UNIQUE' },

View File

@ -48,9 +48,10 @@ my $users = get_domain_users();
my $aliases = [];
my $dbh = Bugzilla->dbh;
my $sth = $dbh->prepare("REPLACE INTO emailin_aliases SET address=?, userid=?, fromldap=1");
my $sth = $dbh->prepare("REPLACE INTO emailin_aliases SET address=?, userid=?, fromldap=1, isprimary=?");
print "Clearing aliases having fromldap=1\n" if $verbose;
$dbh->do("DELETE FROM emailin_aliases WHERE fromldap=1");
my %a = ();
foreach (@$users)
{
my $uid = [ map { login_to_id($_) } @$_ ];
@ -67,11 +68,12 @@ foreach (@$users)
if ($realid)
{
# found user
if ($verbose)
my $i = 0;
for (@$_)
{
print "Adding alias $_ for user $realid ($reallogin)\n" for @$_;
print "Adding alias $_ for user $realid ($reallogin)\n" if $verbose;
$sth->execute($_, $realid, !($i++)) unless $a{$_}++;
}
$sth->execute($_, $realid) for @$_;
}
}
exit;