public function buildIconNavView(PhabricatorUser $user) { $viewer = $this->getViewer(); $picture = $user->getProfileImageURI(); $name = $user->getUsername(); $nav = new AphrontSideNavFilterView(); $nav->setIconNav(true); $nav->setBaseURI(new PhutilURI('/p/')); $nav->addIcon("{$name}/", $name, null, $picture); $class = 'PhabricatorCalendarApplication'; if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { $nav->addIcon("{$name}/calendar/", pht('Calendar'), 'fa-calendar'); } $class = 'PhabricatorManiphestApplication'; if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { $phid = $user->getPHID(); $view_uri = sprintf('/maniphest/?statuses=open()&assigned=%s#R', $phid); $nav->addIcon('maniphest', pht('Open Tasks'), 'fa-anchor', null, $view_uri); } $class = 'PhabricatorDifferentialApplication'; if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { $username = phutil_escape_uri($name); $view_uri = '/differential/?authors=' . $username; $nav->addIcon('differential', pht('Revisions'), 'fa-cog', null, $view_uri); } $class = 'PhabricatorAuditApplication'; if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) { $username = phutil_escape_uri($name); $view_uri = '/audit/?authors=' . $username; $nav->addIcon('audit', pht('Commits'), 'fa-code', null, $view_uri); } return $nav; }
protected function buildUserInformationDictionary(PhabricatorUser $user, $with_email = false, $with_availability = false) { $roles = array(); if ($user->getIsDisabled()) { $roles[] = 'disabled'; } if ($user->getIsSystemAgent()) { $roles[] = 'agent'; } if ($user->getIsMailingList()) { $roles[] = 'list'; } if ($user->getIsAdmin()) { $roles[] = 'admin'; } $primary = $user->loadPrimaryEmail(); if ($primary && $primary->getIsVerified()) { $email = $primary->getAddress(); $roles[] = 'verified'; } else { $email = null; $roles[] = 'unverified'; } if ($user->getIsApproved()) { $roles[] = 'approved'; } if ($user->isUserActivated()) { $roles[] = 'activated'; } $return = array('phid' => $user->getPHID(), 'userName' => $user->getUserName(), 'realName' => $user->getRealName(), 'image' => $user->getProfileImageURI(), 'uri' => PhabricatorEnv::getURI('/p/' . $user->getUsername() . '/'), 'roles' => $roles); if ($with_email) { $return['primaryEmail'] = $email; } if ($with_availability) { // TODO: Modernize this once we have a more long-term view of what the // data looks like. $until = $user->getAwayUntil(); if ($until) { $return['currentStatus'] = 'away'; $return['currentStatusUntil'] = $until; } } return $return; }