public function testTransactionRollback() { $check = array(); $phid = new PhabricatorPHID(); $phid->openTransaction(); for ($ii = 0; $ii < 3; $ii++) { $test_phid = $this->generateTestPHID(); $obj = new PhabricatorPHID(); $obj->setPHID($test_phid); $obj->setPHIDType('TEST'); $obj->setOwnerPHID('PHID-UNIT-!!!!'); $obj->save(); $check[] = $test_phid; } $phid->killTransaction(); foreach ($check as $test_phid) { $this->assertNoSuchPHID($test_phid); } }
protected function createBasicDummyHandle($name, $type, $fullname = null, $uri = null) { $id = mt_rand(15, 9999); $handle = new PhabricatorObjectHandle(); $handle->setName($name); $handle->setType($type); $handle->setPHID(PhabricatorPHID::generateNewPHID($type)); if ($fullname) { $handle->setFullName($fullname); } else { $handle->setFullName(sprintf('%s%d: %s', substr($type, 0, 1), $id, $name)); } if ($uri) { $handle->setURI($uri); } return $handle; }
protected function execute(ConduitAPIRequest $request) { $names = $request->getValue('names'); $phids = array(); foreach ($names as $name) { $phid = PhabricatorPHID::fromObjectName($name); if ($phid) { $phids[$name] = $phid; } } $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles(); $result = array(); foreach ($phids as $name => $phid) { if (isset($handles[$phid]) && $handles[$phid]->isComplete()) { $result[$name] = $this->buildHandleInformationDictionary($handles[$phid]); } } return $result; }
public static function generateNewPHID($type, array $config = array()) { $owner = idx($config, 'owner'); $parent = idx($config, 'parent'); if (!$type) { throw new Exception("Can not generate PHID with no type."); } $uniq = Filesystem::readRandomCharacters(20); $phid = 'PHID-' . $type . '-' . $uniq; $phid_rec = new PhabricatorPHID(); $phid_rec->setPHIDType($type); $phid_rec->setOwnerPHID($owner); $phid_rec->setParentPHID($parent); $phid_rec->setPHID($phid); $phid_rec->save(); return $phid; }
public function save() { $this->subscriptionClassKey = PhabricatorHash::digestForIndex($this->subscriptionClass); $this->subscriptionRefKey = PhabricatorHash::digestForIndex($this->subscriptionRef); $is_new = !$this->getID(); $this->openTransaction(); // If we're saving this subscription for the first time, we're also // going to set up the trigger for it. if ($is_new) { $trigger_phid = PhabricatorPHID::generateNewPHID(PhabricatorWorkerTriggerPHIDType::TYPECONST); $this->setTriggerPHID($trigger_phid); } $result = parent::save(); if ($is_new) { $trigger_action = new PhabricatorScheduleTaskTriggerAction(array('class' => 'PhortuneSubscriptionWorker', 'data' => array('subscriptionPHID' => $this->getPHID()), 'options' => array('objectPHID' => $this->getPHID(), 'priority' => PhabricatorWorker::PRIORITY_BULK))); $trigger = $this->getTrigger(); $trigger->setPHID($trigger_phid); $trigger->setAction($trigger_action); $trigger->save(); } $this->saveTransaction(); return $result; }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorRepositoryRepositoryPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorOwnersPackagePHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(DrydockRepositoryOperationPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorDashboardPanelPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(DrydockLeasePHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorConfigConfigPHIDType::TYPECONST); }
$conn_w = id(new DifferentialRevision())->establishConnection('w'); $rows = new LiskRawMigrationIterator($conn_w, 'differential_comment'); $content_source = PhabricatorContentSource::newForSource(PhabricatorContentSource::SOURCE_LEGACY, array())->serialize(); echo pht('Migrating Differential comment text to modern storage...') . "\n"; foreach ($rows as $row) { $id = $row['id']; echo pht('Migrating Differential comment %d...', $id) . "\n"; if (!strlen($row['content'])) { echo pht('Comment has no text, continuing.') . "\n"; continue; } $revision = id(new DifferentialRevision())->load($row['revisionID']); if (!$revision) { echo pht('Comment has no valid revision, continuing.') . "\n"; continue; } $revision_phid = $revision->getPHID(); $dst_table = 'differential_inline_comment'; $xaction_phid = PhabricatorPHID::generateNewPHID(PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST, DifferentialRevisionPHIDType::TYPECONST); $comment_phid = PhabricatorPHID::generateNewPHID(PhabricatorPHIDConstants::PHID_TYPE_XCMT, DifferentialRevisionPHIDType::TYPECONST); queryfx($conn_w, 'INSERT IGNORE INTO %T (phid, transactionPHID, authorPHID, viewPolicy, editPolicy, commentVersion, content, contentSource, isDeleted, dateCreated, dateModified, revisionPHID, changesetID, legacyCommentID) VALUES (%s, %s, %s, %s, %s, %d, %s, %s, %d, %d, %d, %s, %nd, %d)', 'differential_transaction_comment', $comment_phid, $xaction_phid, $row['authorPHID'], 'public', $row['authorPHID'], 1, $row['content'], $content_source, 0, $row['dateCreated'], $row['dateModified'], $revision_phid, null, $row['id']); } echo pht('Done.') . "\n";
} // Build the main comment transaction. foreach ($main_comments as $main) { $xactions[] = array('type' => PhabricatorTransactions::TYPE_COMMENT, 'old' => null, 'new' => null, 'phid' => $main['transactionPHID'], 'comment' => $main); } // Build inline comment transactions. foreach ($inline_comments as $inline) { $xactions[] = array('type' => PhabricatorAuditActionConstants::INLINE, 'old' => null, 'new' => null, 'phid' => $inline['transactionPHID'], 'comment' => $inline); } foreach ($xactions as $xaction) { // Generate a new PHID, if we don't already have one from the comment // table. We pregenerated into the comment table to make this a little // easier, so we only need to write to one table. $xaction_phid = idx($xaction, 'phid'); if (!$xaction_phid) { $xaction_phid = PhabricatorPHID::generateNewPHID(PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST, PhabricatorRepositoryCommitPHIDType::TYPECONST); } unset($xaction['phid']); $comment_phid = null; $comment_version = 0; if (idx($xaction, 'comment')) { $comment_phid = $xaction['comment']['phid']; $comment_version = 1; } $old = idx($xaction, 'old'); $new = idx($xaction, 'new'); $meta = idx($xaction, 'meta', array()); queryfx($conn_w, 'INSERT INTO %T (phid, authorPHID, objectPHID, viewPolicy, editPolicy, commentPHID, commentVersion, transactionType, oldValue, newValue, contentSource, metadata, dateCreated, dateModified) VALUES (%s, %s, %s, %s, %s, %ns, %d, %s, %ns, %ns, %s, %s, %d, %d)', 'audit_transaction', $xaction_phid, $row['actorPHID'], $row['targetPHID'], 'public', $row['actorPHID'], $comment_phid, $comment_version, $xaction['type'], json_encode($old), json_encode($new), $content_source, json_encode($meta), $row['dateCreated'], $row['dateModified']);
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorOAuthServerClientPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorPeopleExternalPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhrictionDocumentPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(HeraldRulePHIDType::TYPECONST); }
public function generatePHID() { $type = PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST; $subtype = $this->getApplicationTransactionType(); return PhabricatorPHID::generateNewPHID($type, $subtype); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PonderQuestionPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(NuanceSourcePHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(HarbormasterBuildPlanPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorProjectProjectPHIDType::TYPECONST); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhabricatorPHIDConstants::PHID_TYPE_AUTH); }
<?php $diff_table = new DifferentialDiff(); $conn_w = $diff_table->establishConnection('w'); $size = 1000; $row_iter = id(new LiskMigrationIterator($diff_table))->setPageSize($size); $chunk_iter = new PhutilChunkedIterator($row_iter, $size); foreach ($chunk_iter as $chunk) { $sql = array(); foreach ($chunk as $diff) { $id = $diff->getID(); echo pht('Migrating diff ID %d...', $id) . "\n"; $phid = $diff->getPHID(); if (strlen($phid)) { continue; } $type_diff = DifferentialDiffPHIDType::TYPECONST; $new_phid = PhabricatorPHID::generateNewPHID($type_diff); $sql[] = qsprintf($conn_w, '(%d, %s)', $id, $new_phid); } if (!$sql) { continue; } foreach (PhabricatorLiskDAO::chunkSQL($sql, ', ') as $sql_chunk) { queryfx($conn_w, 'INSERT IGNORE INTO %T (id, phid) VALUES %Q ON DUPLICATE KEY UPDATE phid = VALUES(phid)', $diff_table->getTableName(), $sql_chunk); } } echo pht('Done.') . "\n";
public function generatePHID() { return PhabricatorPHID::generateNewPHID(PhortuneMerchantPHIDType::TYPECONST); }
public function setAuditCommentID($id) { $this->proxy->setLegacyCommentID($id); $this->proxy->setTransactionPHID(PhabricatorPHID::generateNewPHID(PhabricatorApplicationTransactionTransactionPHIDType::TYPECONST, PhabricatorRepositoryCommitPHIDType::TYPECONST)); return $this; }
public function generatePHID() { return PhabricatorPHID::generateNewPHID('HLXS'); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(DoorkeeperExternalObjectPHIDType::TYPECONST); }
public function processRequest() { $request = $this->getRequest(); $user = $request->getUser(); if ($this->key) { $query = id(new PhabricatorSearchQuery())->loadOneWhere('queryKey = %s', $this->key); if (!$query) { return new Aphront404Response(); } } else { $query = new PhabricatorSearchQuery(); if ($request->isFormPost()) { $query_str = $request->getStr('query'); $pref_jump = PhabricatorUserPreferences::PREFERENCE_SEARCHBAR_JUMP; if ($request->getStr('jump') != 'no' && $user && $user->loadPreferences()->getPreference($pref_jump, 1)) { $response = PhabricatorJumpNavHandler::jumpPostResponse($query_str); } else { $response = null; } if ($response) { return $response; } else { $query->setQuery($query_str); if ($request->getStr('scope')) { switch ($request->getStr('scope')) { case PhabricatorSearchScope::SCOPE_OPEN_REVISIONS: $query->setParameter('open', 1); $query->setParameter('type', PhabricatorPHIDConstants::PHID_TYPE_DREV); break; case PhabricatorSearchScope::SCOPE_OPEN_TASKS: $query->setParameter('open', 1); $query->setParameter('type', PhabricatorPHIDConstants::PHID_TYPE_TASK); break; case PhabricatorSearchScope::SCOPE_WIKI: $query->setParameter('type', PhabricatorPHIDConstants::PHID_TYPE_WIKI); break; case PhabricatorSearchScope::SCOPE_COMMITS: $query->setParameter('type', PhabricatorPHIDConstants::PHID_TYPE_CMIT); break; default: break; } } else { if (strlen($request->getStr('type'))) { $query->setParameter('type', $request->getStr('type')); } if ($request->getArr('author')) { $query->setParameter('author', $request->getArr('author')); } if ($request->getArr('owner')) { $query->setParameter('owner', $request->getArr('owner')); } if ($request->getInt('open')) { $query->setParameter('open', $request->getInt('open')); } if ($request->getArr('project')) { $query->setParameter('project', $request->getArr('project')); } } $query->save(); return id(new AphrontRedirectResponse())->setURI('/search/' . $query->getQueryKey() . '/'); } } } $options = array('' => 'All Documents') + PhabricatorSearchAbstractDocument::getSupportedTypes(); $status_options = array(0 => 'Open and Closed Documents', 1 => 'Open Documents'); $phids = array_merge($query->getParameter('author', array()), $query->getParameter('owner', array()), $query->getParameter('project', array())); $handles = $this->loadViewerHandles($phids); $author_value = array_select_keys($handles, $query->getParameter('author', array())); $author_value = mpull($author_value, 'getFullName', 'getPHID'); $owner_value = array_select_keys($handles, $query->getParameter('owner', array())); $owner_value = mpull($owner_value, 'getFullName', 'getPHID'); $project_value = array_select_keys($handles, $query->getParameter('project', array())); $project_value = mpull($project_value, 'getFullName', 'getPHID'); $search_form = new AphrontFormView(); $search_form->setUser($user)->setAction('/search/')->appendChild(phutil_render_tag('input', array('type' => 'hidden', 'name' => 'jump', 'value' => 'no')))->appendChild(id(new AphrontFormTextControl())->setLabel('Search')->setName('query')->setValue($query->getQuery()))->appendChild(id(new AphrontFormSelectControl())->setLabel('Document Type')->setName('type')->setOptions($options)->setValue($query->getParameter('type')))->appendChild(id(new AphrontFormSelectControl())->setLabel('Document Status')->setName('open')->setOptions($status_options)->setValue($query->getParameter('open')))->appendChild(id(new AphrontFormTokenizerControl())->setName('author')->setLabel('Author')->setDatasource('/typeahead/common/users/')->setValue($author_value))->appendChild(id(new AphrontFormTokenizerControl())->setName('owner')->setLabel('Owner')->setDatasource('/typeahead/common/searchowner/')->setValue($owner_value)->setCaption('Tip: search for "Up For Grabs" to find unowned documents.'))->appendChild(id(new AphrontFormTokenizerControl())->setName('project')->setLabel('Project')->setDatasource('/typeahead/common/projects/')->setValue($project_value))->appendChild(id(new AphrontFormSubmitControl())->setValue('Search')); $search_panel = new AphrontPanelView(); $search_panel->setHeader('Search Phabricator'); $search_panel->appendChild($search_form); require_celerity_resource('phabricator-search-results-css'); if ($query->getID()) { $limit = 20; $pager = new AphrontPagerView(); $pager->setURI($request->getRequestURI(), 'page'); $pager->setPageSize($limit); $pager->setOffset($request->getInt('page')); $query->setParameter('limit', $limit + 1); $query->setParameter('offset', $pager->getOffset()); $engine = PhabricatorSearchEngineSelector::newSelector()->newEngine(); $results = $engine->executeSearch($query); $results = $pager->sliceResults($results); if (!$request->getInt('page')) { $jump = PhabricatorPHID::fromObjectName($query->getQuery()); if ($jump) { array_unshift($results, $jump); } } if ($results) { $loader = new PhabricatorObjectHandleData($results); $handles = $loader->loadHandles(); $objects = $loader->loadObjects(); $results = array(); foreach ($handles as $phid => $handle) { $view = new PhabricatorSearchResultView(); $view->setHandle($handle); $view->setQuery($query); $view->setObject(idx($objects, $phid)); $results[] = $view->render(); } $results = '<div class="phabricator-search-result-list">' . implode("\n", $results) . '<div class="search-results-pager">' . $pager->render() . '</div>' . '</div>'; } else { $results = '<div class="phabricator-search-result-list">' . '<p class="phabricator-search-no-results">No search results.</p>' . '</div>'; } } else { $results = null; } return $this->buildStandardPageResponse(array($search_panel, $results), array('title' => 'Search Results')); }
public function generatePHID() { return PhabricatorPHID::generateNewPHID(AlmanacNetworkPHIDType::TYPECONST); }