<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:#606420;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
@page Section1
{size:595.3pt 841.9pt;
margin:70.85pt 69.6pt 70.85pt 69.6pt;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=ET link=blue vlink="#606420">
<div class=Section1>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>My experience as administrator and developer of the
enterprise business systems supports Kevin's point that a deletion record
from interrelated database is complicated process that will create referential
integrity problems.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>Instead of deletion of record (user, customer, work
order) we introduced Active flag that can be turned off if there are related records
(like bugs related to user in Bugzilla)<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>If there is2 step deletion: <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>-----Original Message-----<br>
From: developers-owner@bugzilla.org [mailto:developers-owner@bugzilla.org] On
Behalf Of Benton, Kevin<br>
Sent: Monday, April 04, 2005 10:19 PM<br>
To: developers@bugzilla.org<br>
Subject: Re: Should we remove ability to turn on user and bug deletion?</span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> -----Original Message-----<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> From: developers-owner@bugzilla.org<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>[mailto:developers-owner@bugzilla.org]<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> On Behalf Of Marc Schumann<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> Sent: Monday, April 04, 2005 11:05 AM<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> To: developers@bugzilla.org<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> Subject: Re: Should we remove ability to turn on
user and bug<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>deletion?<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> On Apr 4, 2005 10:54 AM, Gervase Markham
<gerv@mozilla.org> wrote:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> > The newsgroups are filled with people who
have turned on user and<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>bug<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> > deletion, despite the warnings, and got into
difficulty. I say we<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>should<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> > remove the Params, and tell people it's not
supported, until such<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>time<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> > as someone implements it properly.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> ><o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> > What do you think?<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> User deletion has improved a lot with bug 119485.
On user deletion,<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> the admin is presented with individual, detailed
warnings. Short of<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> deleting bugs, related entities are deleted along
with the user.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> Leaving the bugs undeleted will cause db
inconsistency when overriding<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> the corresponding warning. Maybe it's an idea to
go for the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> never-inconsistencies way, but I don't think this
warrants to make<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>> user deletion impossible.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>As a Bugzilla Administrator, it seems like a lot of
work at this point<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>to perform deletions of users if that user has had
much activity in the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>system at all. If the user is an assigned-to
person, has commented on<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>bugs, has created activity log entries, attachments,
etc., there's a lot<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>to deleting that user without creating referential
problems. On the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>other hand, if we have a "deleted" flag, it
would be relatively easy to<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>handle clean-up because the user should no longer have
access to the web<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>or email interfaces, and there's no need to handle
activity log entries<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>in a special manner because they're still stored in
the database. In<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>the event a system admin decides they made a mistake,
no data has been<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>lost, they can simply turn the user back on. In
my mind, a user flagged<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>as deleted would no longer show up in user lists,
hyperlinks to them<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>would be disabled, and the only way to gain access to
those users would<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>be to request to include a listing of deleted users
from the user<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>administration menu, and of course, from MySQL
directly.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>As a Bugzilla programmer, it makes a lot of sense to
me to give the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>ability to "permanently and completely disable a
user" without having to<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>remove them from the DB. I believe it would be
extremely rare when<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>administrators would actually want to physically
remove "old users" from<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>the system short of running out of disk space or the
user table gets<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>"too big." In those cases, I think we
need to come up with a way to set<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>up a default user that all entries can be reassigned
to in the event<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>that a user deletion is required. If not a default
user, then I feel we<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>should give the person performing the deletion the
opportunity to pick a<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>person or assign the bugs back to the person doing the
deletion. In<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>those cases, a set of updates could be written to
update all the user id<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>foreign keys changing any instance of the user being
deleted to the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>appropriate user id. By doing this, we haven't
thrown out any<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>historical information, and we can now completely
remove the user from<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>the system without breaking any references. It
also makes querying the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>database relatively easy, giving the administrator
immediate access to<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>any bugs that need to be reassigned after the user has
been removed.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>Another benefit of this auto-reassignment method is
that it makes it<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>easier to back-out any changes made by a real user
deletion. All the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>changes made to bugs and other foreign keys containing
that user's id<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>can be reverted because the listing of those changes
should be available<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>in a query.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>---<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>Kevin Benton<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>Perl/Bugzilla Developer<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>Advanced Micro Devices<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'> <o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>The opinions stated in this communication do not
necessarily reflect the<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>view of Advanced Micro Devices and have not been
reviewed by management.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>This communication may contain sensitive and/or
confidential and/or<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>proprietary information. Distribution of such
information is strictly<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>prohibited without prior consent of Advanced Micro Devices.
This<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>communication is for the intended recipient(s)
only. If you have<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>received this communication in error, please notify
the sender, then<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>destroy any remaining copies of this communication.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>-<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'>To view or change your list settings, click here:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span lang=EN-US
style='font-size:10.0pt'><http://bugzilla.org/cgi-bin/mj_wwwusr?user=toomas@persimplex.com><o:p></o:p></span></font></p>
</div>
</body>
</html>