1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 00:32:42 +01:00

Add some profile upload jonx.

This commit is contained in:
epriestley 2011-02-05 23:56:06 -08:00
parent 78f0b4aff9
commit 701d029123
3 changed files with 101 additions and 1 deletions

View file

@ -30,7 +30,7 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
$user = $request->getUser(); $user = $request->getUser();
$pages = array( $pages = array(
// 'personal' => 'Profile', 'account' => 'Account',
// 'password' => 'Password', // 'password' => 'Password',
// 'facebook' => 'Facebook Account', // 'facebook' => 'Facebook Account',
'arcanist' => 'Arcanist Certificate', 'arcanist' => 'Arcanist Certificate',
@ -71,6 +71,15 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
$user->save(); $user->save();
return id(new AphrontRedirectResponse()) return id(new AphrontRedirectResponse())
->setURI('/settings/page/arcanist/?regenerated=true'); ->setURI('/settings/page/arcanist/?regenerated=true');
case 'account':
if (!empty($_FILES['profile'])) {
$file = PhabricatorFile::newFromPHPUpload($_FILES['profile']);
$user->setProfileImagePHID($file->getPHID());
}
$user->save();
return id(new AphrontRedirectResponse())
->setURI('/settings/page/account/');
} }
} }
@ -78,6 +87,9 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
case 'arcanist': case 'arcanist':
$content = $this->renderArcanistCertificateForm(); $content = $this->renderArcanistCertificateForm();
break; break;
case 'account':
$content = $this->renderAccountForm();
break;
default: default:
$content = 'derp derp'; $content = 'derp derp';
break; break;
@ -165,4 +177,59 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
return $notice.$cert->render().$regen->render(); return $notice.$cert->render().$regen->render();
} }
private function renderAccountForm() {
$request = $this->getRequest();
$user = $request->getUser();
$img_src = PhabricatorFileURI::getViewURIForPHID(
$user->getProfileImagePHID());
$form = new AphrontFormView();
$form
->setUser($user)
->setEncType('multipart/form-data')
->appendChild(
id(new AphrontFormStaticControl())
->setLabel('Username')
->setValue($user->getUsername()))
->appendChild(
id(new AphrontFormStaticControl())
->setLabel('Email')
->setValue($user->getEmail()))
->appendChild(
id(new AphrontFormTextControl())
->setLabel('Real Name')
->setValue($user->getRealName()))
->appendChild(
id(new AphrontFormMarkupControl())
->setValue('<hr />'))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel('Profile Image')
->setValue(
phutil_render_tag(
'img',
array(
'src' => $img_src,
))))
->appendChild(
id(new AphrontFormFileControl())
->setLabel('Change Image')
->setName('profile')
->setCaption('Upload a 50x50px image.'))
->appendChild(
id(new AphrontFormMarkupControl())
->setValue('<hr />'))
->appendChild(
id(new AphrontFormSubmitControl())
->setValue('Save'));
$panel = new AphrontPanelView();
$panel->setHeader('Profile Settings');
$panel->setWidth(AphrontPanelView::WIDTH_FORM);
$panel->appendChild($form);
return $panel->render();
}
} }

View file

@ -0,0 +1,26 @@
@title Installing Authentication Certificates
@group config
Arcanist uses certificates to authenticate to Phabricator. Usernames and
certificates for each host you have credentials on are stored in your
##~/.arcrc## file under the "hosts" key. The configuration should look something
like this:
{
# ...
"hosts" : {
"http://phabricator.example.com/api/" : {
"user" : "alincoln",
"cert" : "Y2FTilanoONuPzAtXayoctmX6FmIt7QjxXhWVAv2EoWpeik1Deecl3jRo"
}
# If you have accounts on more than one host, add them here.
}
}
To retrieve the certificate for a Phabricator host:
- Login to Phabricator.
- Go to Settings > Arcanist Certificate.
Copy the certificate into the "cert" field, and specify your username in the
"user" field.

View file

@ -97,3 +97,10 @@ table.aphront-form-control-checkbox-layout th {
.aphront-form-control-checkbox-layout td input { .aphront-form-control-checkbox-layout td input {
width: auto; width: auto;
} }
.aphront-form-input hr {
border: none;
background: #bbbbbb;
height: 1px;
position: relative;
}