Page MenuHomePhabricator

D18967.diff
No OneTemporary

D18967.diff

diff --git a/src/applications/people/application/PhabricatorPeopleApplication.php b/src/applications/people/application/PhabricatorPeopleApplication.php
--- a/src/applications/people/application/PhabricatorPeopleApplication.php
+++ b/src/applications/people/application/PhabricatorPeopleApplication.php
@@ -42,8 +42,9 @@
return array(
'/people/' => array(
$this->getQueryRoutePattern() => 'PhabricatorPeopleListController',
- 'logs/(?:query/(?P<queryKey>[^/]+)/)?'
- => 'PhabricatorPeopleLogsController',
+ 'logs/' => array(
+ $this->getQueryRoutePattern() => 'PhabricatorPeopleLogsController',
+ ),
'invite/' => array(
'(?:query/(?P<queryKey>[^/]+)/)?'
=> 'PhabricatorPeopleInviteListController',
diff --git a/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php b/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
--- a/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
+++ b/src/applications/people/query/PhabricatorPeopleLogSearchEngine.php
@@ -128,4 +128,102 @@
return id(new PhabricatorApplicationSearchResultView())
->setTable($table);
}
+
+ protected function newExportFields() {
+ $viewer = $this->requireViewer();
+
+ $fields = array(
+ $fields[] = id(new PhabricatorPHIDExportField())
+ ->setKey('actorPHID')
+ ->setLabel(pht('Actor PHID')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('actor')
+ ->setLabel(pht('Actor')),
+ $fields[] = id(new PhabricatorPHIDExportField())
+ ->setKey('userPHID')
+ ->setLabel(pht('User PHID')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('user')
+ ->setLabel(pht('User')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('action')
+ ->setLabel(pht('Action')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('actionName')
+ ->setLabel(pht('Action Name')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('session')
+ ->setLabel(pht('Session')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('old')
+ ->setLabel(pht('Old Value')),
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('new')
+ ->setLabel(pht('New Value')),
+ );
+
+ if ($viewer->getIsAdmin()) {
+ $fields[] = id(new PhabricatorStringExportField())
+ ->setKey('remoteAddress')
+ ->setLabel(pht('Remote Address'));
+ }
+
+ return $fields;
+ }
+
+ protected function newExportData(array $logs) {
+ $viewer = $this->requireViewer();
+
+
+ $phids = array();
+ foreach ($logs as $log) {
+ $phids[] = $log->getUserPHID();
+ $phids[] = $log->getActorPHID();
+ }
+ $handles = $viewer->loadHandles($phids);
+
+ $action_map = PhabricatorUserLog::getActionTypeMap();
+
+ $export = array();
+ foreach ($logs as $log) {
+
+ $user_phid = $log->getUserPHID();
+ if ($user_phid) {
+ $user_name = $handles[$user_phid]->getName();
+ } else {
+ $user_name = null;
+ }
+
+ $actor_phid = $log->getActorPHID();
+ if ($actor_phid) {
+ $actor_name = $handles[$actor_phid]->getName();
+ } else {
+ $actor_name = null;
+ }
+
+ $action = $log->getAction();
+ $action_name = idx($action_map, $action, pht('Unknown ("%s")', $action));
+
+ $map = array(
+ 'actorPHID' => $actor_phid,
+ 'actor' => $actor_name,
+ 'userPHID' => $user_phid,
+ 'user' => $user_name,
+ 'action' => $action,
+ 'actionName' => $action_name,
+ 'session' => substr($log->getSession(), 0, 6),
+ 'old' => $log->getOldValue(),
+ 'new' => $log->getNewValue(),
+ );
+
+ if ($viewer->getIsAdmin()) {
+ $map['remoteAddress'] = $log->getRemoteAddr();
+ }
+
+ $export[] = $map;
+ }
+
+ return $export;
+ }
+
}
diff --git a/src/applications/search/engine/PhabricatorApplicationSearchEngine.php b/src/applications/search/engine/PhabricatorApplicationSearchEngine.php
--- a/src/applications/search/engine/PhabricatorApplicationSearchEngine.php
+++ b/src/applications/search/engine/PhabricatorApplicationSearchEngine.php
@@ -1455,15 +1455,20 @@
}
final public function newExportFieldList() {
+ $object = $this->newResultObject();
+
$builtin_fields = array(
id(new PhabricatorIDExportField())
->setKey('id')
->setLabel(pht('ID')),
- id(new PhabricatorPHIDExportField())
- ->setKey('phid')
- ->setLabel(pht('PHID')),
);
+ if ($object->getConfigOption(LiskDAO::CONFIG_AUX_PHID)) {
+ $builtin_fields[] = id(new PhabricatorPHIDExportField())
+ ->setKey('phid')
+ ->setLabel(pht('PHID'));
+ }
+
$fields = mpull($builtin_fields, null, 'getKey');
$export_fields = $this->newExportFields();
@@ -1507,15 +1512,23 @@
}
final public function newExport(array $objects) {
+ $object = $this->newResultObject();
+ $has_phid = $object->getConfigOption(LiskDAO::CONFIG_AUX_PHID);
+
$objects = array_values($objects);
$n = count($objects);
$maps = array();
foreach ($objects as $object) {
- $maps[] = array(
+ $map = array(
'id' => $object->getID(),
- 'phid' => $object->getPHID(),
);
+
+ if ($has_phid) {
+ $map['phid'] = $object->getPHID();
+ }
+
+ $maps[] = $map;
}
$export_data = $this->newExportData($objects);

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 4:38 AM (4 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6274042
Default Alt Text
D18967.diff (5 KB)

Event Timeline