Ravenbrook / Projects / Perforce Defect Tracking Integration / Issues

Perforce Defect Tracking Integration


P4DTI issue job000133

Title: You can't close a job by fixing it
Status: closed
Priority: critical
Assigned user: gdr
Product: p4dti
Organization: Ravenbrook
Description: You can close a job by editing the job and changing the state, but you can't close a job by fixing it. TeamTrack refuses to replicate the fix, and the replicator reopens the job.
Analysis: This has the same underlying cause as job000016, job000042 and job000086.
This is because when you fix a job, the P4DTI-user field doesn't get updated. So if you fix a job and P4DTI-user is the replicator, then the replicator tries to transition the job on behalf of itself; since it doesn't have permission, then it fails. This used to work by coincidence because the replicator was a member of the Administrator group, and could transition all jobs, but we've tightened that up (see job000086).
The best solution would be for Perforce to fix job000016.
One possible workaround would be to restore the replicator's privileges so that it can always do a transition. A second workaround would be to use the Owner field to do the transition when the P4DTI-user field is the replicator. In either case, people will be able to make transitions that they don't have permission to do (so job000086 is increased in severity).
I recommend using the Owner field as a workaround. It's best that the replicator has fewer privileges, as that is likely to introduce more obscure security holes, and it would make configuring TeamTrack more complicated. RB 2000-12-06
How found: manual_test
Evidence: Observed in 0.4.0.
Observed in: 0.4.0
Introduced in: 0.0.0
Test procedure: <http://www.ravenbrook.com/project/p4dti/master/test/test_p4dti.py>, section 10.2
Created by: gdr
Created on: 2000-12-06 12:00:06
Last modified by: gdr
Last modified on: 2001-12-10 19:12:09
History: 2000-12-06 GDR Created.

Fixes

Change Effect Date User Description
5535 closed 2000-12-06 13:28:29 gdr Fixing job000133 (replicator gets wrong user when a job is fixed):
Report both the user and the transition when a transition is generated, to make this problem easier to spot and debug if it happens again.
When the last person who changed the job is the replicator user, update the issue on behalf of the job owner instead.

Generated at 2008-10-07 06:30:08 by $Id: //info.ravenbrook.com/infosys/cgi/issue.cgi#430 $

Copyright © Ravenbrook Limited. This document is provided "as is", without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this document. You may make and distribute verbatim copies of this document provided that you do not charge a fee for this document or for its distribution.

Ravenbrook / Projects / Perforce Defect Tracking Integration / Issues