Add Basic Auditing Functionalities

Summary:
add basic auditing functionalities. For the related commits for a
package, we detect the following conditions which might be suspicious to the
owners of the package:

* no revision specified
* revision not found
* author not match
* reviewedby not match
* owners not involved
* commit author not recognized

The owners of the package can change the status of the audit entries by
accepting it or specify concern.

The owner can turn on/off the auditing for a package.

Test Plan:
*  verified that non-owner cannot see the details of the audit and cannot modify
it
*  verified that all the audit reasons can be detected
*  tested dropdown filtering and package search
*  verified really normal change not detected
*  verified accept/concern a commit
*  tested enable/disable a package for auditing
*  verified one audit applies to all <commit, packages> to the packages the
auditor owns
*  verified that re-parsing a commit won't have effect if there exists a
 relationship for <commit, package> already

Reviewers: epriestley, nh

Reviewed By: epriestley

CC: aran, benmathews, btrahan, mpodobnik, prithvi, TomL, epriestley

Differential Revision: 1242
This commit is contained in:
jungejason
2011-12-17 15:52:54 -08:00
parent 125e5b16db
commit c80d1480d5
26 changed files with 868 additions and 22 deletions

View File

@@ -23,13 +23,24 @@ class AphrontFormTextAreaControl extends AphrontFormControl {
const HEIGHT_VERY_TALL = 'very-tall';
private $height;
private $readOnly;
private $enableDragAndDropFileUploads;
public function setHeight($height) {
$this->height = $height;
return $this;
}
public function setReadOnly($read_only) {
$this->readOnly = $read_only;
return $this;
}
protected function getReadOnly() {
return $this->readOnly;
}
protected function getCustomControlClass() {
return 'aphront-form-control-textarea';
}
@@ -69,6 +80,7 @@ class AphrontFormTextAreaControl extends AphrontFormControl {
array(
'name' => $this->getName(),
'disabled' => $this->getDisabled() ? 'disabled' : null,
'readonly' => $this->getReadonly() ? 'readonly' : null,
'class' => $height_class,
'style' => $this->getControlStyle(),
'id' => $id,