1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-24 06:20:56 +01:00

Merge pull request #11 from cadamo/master

Fix regenerate arcanist cert, setup stuff and avoid accept non valid image files as profile picture.
This commit is contained in:
Evan Priestley 2011-06-03 00:22:52 -07:00
commit 9ff124e5de
5 changed files with 64 additions and 32 deletions

View file

@ -32,7 +32,7 @@ class PhabricatorPeopleProfileEditController
$profile->setUserPHID($user->getPHID()); $profile->setUserPHID($user->getPHID());
} }
$errors = array();
if ($request->isFormPost()) { if ($request->isFormPost()) {
$profile->setTitle($request->getStr('title')); $profile->setTitle($request->getStr('title'));
$profile->setBlurb($request->getStr('blurb')); $profile->setBlurb($request->getStr('blurb'));
@ -41,14 +41,29 @@ class PhabricatorPeopleProfileEditController
$err = idx($_FILES['image'], 'error'); $err = idx($_FILES['image'], 'error');
if ($err != UPLOAD_ERR_NO_FILE) { if ($err != UPLOAD_ERR_NO_FILE) {
$file = PhabricatorFile::newFromPHPUpload($_FILES['image']); $file = PhabricatorFile::newFromPHPUpload($_FILES['image']);
$profile->setProfileImagePHID($file->getPHID()); $okay = $file->isTransformableImage();
if ($okay) {
$profile->setProfileImagePHID($file->getPHID());
} else {
$errors[] =
'Only valid image files (jpg, jpeg, png or gif) '.
'will be accepted.';
}
} }
} }
$profile->save(); if (!$errors) {
$response = id(new AphrontRedirectResponse()) $profile->save();
->setURI('/p/'.$user->getUsername().'/'); $response = id(new AphrontRedirectResponse())
return $response; ->setURI('/p/'.$user->getUsername().'/');
return $response;
}
}
if ($errors) {
$error_view = new AphrontErrorView();
$error_view->setTitle('Form Errors');
$error_view->setErrors($errors);
} }
$form = new AphrontFormView(); $form = new AphrontFormView();
@ -88,10 +103,13 @@ class PhabricatorPeopleProfileEditController
$panel->setWidth(AphrontPanelView::WIDTH_FORM); $panel->setWidth(AphrontPanelView::WIDTH_FORM);
return $this->buildStandardPageResponse( return $this->buildStandardPageResponse(
$panel, array(
$error_view,
$panel,
),
array( array(
'title' => 'Edit Profile', 'title' => 'Edit Profile',
)); ));
} }
} }

View file

@ -15,9 +15,10 @@ phutil_require_module('phabricator', 'view/form/control/file');
phutil_require_module('phabricator', 'view/form/control/submit'); phutil_require_module('phabricator', 'view/form/control/submit');
phutil_require_module('phabricator', 'view/form/control/text'); phutil_require_module('phabricator', 'view/form/control/text');
phutil_require_module('phabricator', 'view/form/control/textarea'); phutil_require_module('phabricator', 'view/form/control/textarea');
phutil_require_module('phabricator', 'view/form/error');
phutil_require_module('phabricator', 'view/layout/panel'); phutil_require_module('phabricator', 'view/layout/panel');
phutil_require_module('phutil', 'utils'); phutil_require_module('phutil', 'utils');
phutil_require_source('PhabricatorPeopleProfileEditController.php'); phutil_require_source('PhabricatorPeopleProfileEditController.php');

View file

@ -118,14 +118,22 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
$err = idx($_FILES['profile'], 'error'); $err = idx($_FILES['profile'], 'error');
if ($err != UPLOAD_ERR_NO_FILE) { if ($err != UPLOAD_ERR_NO_FILE) {
$file = PhabricatorFile::newFromPHPUpload($_FILES['profile']); $file = PhabricatorFile::newFromPHPUpload($_FILES['profile']);
$user->setProfileImagePHID($file->getPHID()); $okay = $file->isTransformableImage();
if ($okay) {
$user->setProfileImagePHID($file->getPHID());
} else {
$errors[] =
'Only valid image files (jpg, jpeg, png or gif) '.
'will be accepted.';
}
} }
} }
$user->setRealName($request->getStr('realname')); $user->setRealName($request->getStr('realname'));
if (!strlen($user->getRealName())) { if (!strlen($user->getRealName())) {
$errors[] = 'Real name must be nonempty'; $errors[] = 'Real name must be nonempty.';
$e_realname = 'Required'; $e_realname = 'Required';
} }
@ -245,7 +253,6 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
$regen_form = new AphrontFormView(); $regen_form = new AphrontFormView();
$regen_form $regen_form
->setUser($user) ->setUser($user)
->setWorkflow(true)
->setAction('/settings/page/arcanist/') ->setAction('/settings/page/arcanist/')
->appendChild( ->appendChild(
'<p class="aphront-form-instructions">You can regenerate this '. '<p class="aphront-form-instructions">You can regenerate this '.
@ -526,7 +533,5 @@ class PhabricatorUserSettingsController extends PhabricatorPeopleController {
return $notice.$panel->render(); return $notice.$panel->render();
} }
}
}

View file

@ -130,18 +130,28 @@ class PhabricatorSetup {
self::writeDoc('article/Configuration_Guide.html'); self::writeDoc('article/Configuration_Guide.html');
return; return;
} else { } else {
self::write(" okay Custom configuration loaded.\n"); $host = PhabricatorEnv::getEnvConfig('phabricator.base-uri');
} $protocol = id(new PhutilURI($host))->getProtocol();
if (!($protocol === 'http') || !($protocol === 'https')) {
if (!PhabricatorEnv::getEnvConfig('phabricator.base-uri')) { self::writeFailure();
self::writeFailure(); self::write(
self::write( "You must specify the protocol over which your host works (e.g.: ".
"Setup failure! You must specify 'phabricator.base-uri' in your ". "\"http:// or https://\")\nin your custom config file.\nRefer to ".
"custom config file. Refer to 'default.conf.php' for documentation ". "'default.conf.php' for documentation on configuration options.\n");
"on configuration options.\n"); return;
return; }
} else { if (preg_match('/.*\/$/', $host)) {
self::write(" okay phabricator.base-uri\n"); self::write(" okay phabricator.base-uri\n");
} else {
self::writeFailure();
self::write(
"You must add a trailing slash at the end of the host\n(e.g.: ".
"\"http://phabricator.example.com/ instead of ".
"http://phabricator.example.com\")\nin your custom config file.".
"\nRefer to 'default.conf.php' for documentation on configuration ".
"options.\n");
return;
}
} }
self::write("[OKAY] Basic configuration OKAY\n"); self::write("[OKAY] Basic configuration OKAY\n");
@ -426,4 +436,4 @@ class PhabricatorSetup {
"\n\n"); "\n\n");
} }
} }

View file

@ -4,8 +4,6 @@
* @generated * @generated
*/ */
phutil_require_module('phabricator', 'infrastructure/env'); phutil_require_module('phabricator', 'infrastructure/env');
phutil_require_module('phabricator', 'infrastructure/setup/sql'); phutil_require_module('phabricator', 'infrastructure/setup/sql');
phutil_require_module('phabricator', 'storage/connection/mysql'); phutil_require_module('phabricator', 'storage/connection/mysql');
@ -14,7 +12,7 @@ phutil_require_module('phabricator', 'storage/queryfx');
phutil_require_module('phutil', 'filesystem'); phutil_require_module('phutil', 'filesystem');
phutil_require_module('phutil', 'future/exec'); phutil_require_module('phutil', 'future/exec');
phutil_require_module('phutil', 'moduleutils'); phutil_require_module('phutil', 'moduleutils');
phutil_require_module('phutil', 'parser/uri');
phutil_require_module('phutil', 'utils'); phutil_require_module('phutil', 'utils');
phutil_require_source('PhabricatorSetup.php');
phutil_require_source('PhabricatorSetup.php');