Path: blob/master/src/applications/people/controller/PhabricatorPeopleProfileEditController.php
12262 views
<?php12final class PhabricatorPeopleProfileEditController3extends PhabricatorPeopleProfileController {45public function handleRequest(AphrontRequest $request) {6$viewer = $this->getViewer();7$id = $request->getURIData('id');89$user = id(new PhabricatorPeopleQuery())10->setViewer($viewer)11->withIDs(array($id))12->needProfileImage(true)13->requireCapabilities(14array(15PhabricatorPolicyCapability::CAN_VIEW,16PhabricatorPolicyCapability::CAN_EDIT,17))18->executeOne();19if (!$user) {20return new Aphront404Response();21}2223$this->setUser($user);2425$done_uri = $this->getApplicationURI("manage/{$id}/");2627$field_list = PhabricatorCustomField::getObjectFields(28$user,29PhabricatorCustomField::ROLE_EDIT);30$field_list31->setViewer($viewer)32->readFieldsFromStorage($user);3334$validation_exception = null;35if ($request->isFormPost()) {36$xactions = $field_list->buildFieldTransactionsFromRequest(37new PhabricatorUserTransaction(),38$request);3940$editor = id(new PhabricatorUserTransactionEditor())41->setActor($viewer)42->setContentSourceFromRequest($request)43->setContinueOnNoEffect(true);4445try {46$editor->applyTransactions($user, $xactions);47return id(new AphrontRedirectResponse())->setURI($done_uri);48} catch (PhabricatorApplicationTransactionValidationException $ex) {49$validation_exception = $ex;50}51}5253$title = pht('Edit Profile');5455$form = id(new AphrontFormView())56->setUser($viewer);5758$field_list->appendFieldsToForm($form);59$form60->appendChild(61id(new AphrontFormSubmitControl())62->addCancelButton($done_uri)63->setValue(pht('Save Profile')));6465$allow_public = PhabricatorEnv::getEnvConfig('policy.allow-public');66$note = null;67if ($allow_public) {68$note = id(new PHUIInfoView())69->setSeverity(PHUIInfoView::SEVERITY_WARNING)70->appendChild(pht(71'Information on user profiles on this install is publicly '.72'visible.'));73}7475$form_box = id(new PHUIObjectBoxView())76->setHeaderText(pht('Profile'))77->setValidationException($validation_exception)78->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)79->setForm($form);8081$crumbs = $this->buildApplicationCrumbs();82$crumbs->addTextCrumb(pht('Edit Profile'));83$crumbs->setBorder(true);8485$nav = $this->newNavigation(86$user,87PhabricatorPeopleProfileMenuEngine::ITEM_MANAGE);8889$header = id(new PHUIHeaderView())90->setHeader(pht('Edit Profile: %s', $user->getFullName()))91->setHeaderIcon('fa-pencil');9293$view = id(new PHUITwoColumnView())94->setHeader($header)95->setFooter(array(96$note,97$form_box,98));99100return $this->newPage()101->setTitle($title)102->setCrumbs($crumbs)103->setNavigation($nav)104->appendChild($view);105}106}107108109