Ravenbrook / Projects / Perforce Defect Tracking Integration / Version 2.4 Product Sources / Design
Perforce Defect Tracking Integration Project
This document describes the emailsuffix
feature in
Bugzilla, and how this feature is supported in the P4DTI.
The intended readership is P4DTI development staff.
This document is not confidential.
emailsuffix
featureThis discussion applies to Bugzilla versions from 2.14.x to 2.20.x at least. No doubt the algorithm will change in future Bugzilla releases.
The help text for Bugzilla's emailregexp
parameter
says:
This defines the regexp to use for legal email addresses. The default tries to match fully qualified email addresses. Another popular value to put here is ^[^@]*$, which means "local usernames, no @ allowed.
The default value for emailregexp
is
^[^@]*@[^@]*\\.[^@]*$.
The help text for the emailsuffix
parameter says:
This is a string to append to any email addresses when actually sending mail to that address. It is useful if you have changed the emailregexp param to only allow local usernames, but you want the mail to be delivered to username@my.local.hostname.
The default value for emailsuffix
is the empty
string.
When logging in:
emailregexp
parameter
(CGI.pl
line 767). login_name
field in
the profiles
table exactly (CGI.pl
line
771). emailsuffix
parameter is not consulted. When sending e-mail, a user's e-mail address is constructing by
appending the emailsuffix
parameter to the login name (for
example, CGI.pl
line 734). No check is made to see if
login name already contains an "@", or if the resulting address makes
sense according to [RFC
822].
There are bad consequences of this design:
emailregexp
to something that doesn't match the
administrator's login. emailregexp
still has its original value, requiring
an "@" in the administrator's login name. emailsuffix
set, but some users still
have their full e-mail address as their login name, then those users
won't get e-mail because the constructed e-mail address will be
wrong. emailsuffix
(perhaps
because you've now got users from more than one domain), then people
with local-part-only login names won't get e-mail. You'll have to go
into the database and fix up all the login names. But presumably Bugzilla administrators live with these problems somehow.
emailsuffix
feature To support the feature, we need to be able to read Bugzilla's
emailsuffix
parameter. Unfortunately, Bugzilla's server
parameters are not stored in Bugzilla's database, but instead in the
file data/params
in the Bugzilla's installation. This file
is possibly not available for reading by the P4DTI since it may be on a
different machine.
So we patch Bugzilla to write its parameters to the table
p4dti_bugzilla_parameters
in the database whenever the
parameters are edited [NB
2000-11-14].
This has the consquence that the Bugzilla administrator who installs
the P4DTI (or upgrades from a version of P4DTI without this feature)
needs to patch Bugzilla and run the editparams.cgi
CGI
script in order to force the table to be generated [RB 2000-08-10,
5.4.3].
The P4DTI's algorithm is then very simple. When we fetch e-mail
addresses from the Bugzilla profiles
table (in the function
user_id_and_email_list
in [NB
2000-11-21]), we append the emailsuffix
parameter if we
know it. The logic in the user translator is thus unaffected.
[NB 2000-11-14] | "Bugzilla database schema extensions for integration with Perforce"; Nick Barnes; Ravenbrook Limited; 2000-11-14. |
[NB 2000-11-21] | "bugzilla.py -- interface to Bugzilla"; Nick Barnes; Ravenbrook Limited; 2000-11-21. |
[RB 2000-08-10] | "Perforce Defect Tracking Integration Administrator's Guide"; Richard Brooksby; Ravenbrook Limited; 2000-08-10. |
[RFC 822] | "Standard for the format of ARPA Internet text messages"; David H Crocker; 1982-08-13. |
2002-01-24 | GDR | Created. |
2002-01-31 | NB | Added Bugzilla 2.14.1. |
2002-10-04 | NB | Added notes on later Bugzilla releases. |
This document is copyright © 2001 Perforce Software, Inc. All rights reserved.
Redistribution and use of this document in any form, with or without modification, is permitted provided that redistributions of this document retain the above copyright notice, this condition and the following disclaimer.
This document is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holders and contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this document, even if advised of the possibility of such damage.
$Id: //info.ravenbrook.com/project/p4dti/version/2.4/design/bugzilla-emailsuffix/index.html#2 $
Ravenbrook / Projects / Perforce Defect Tracking Integration / Version 2.4 Product Sources / Design