Make /api/account/update_profile_background_image.format work even
when there isn't an existing Design for the user. Plus a few other fixups.
This commit is contained in:
parent
312c745884
commit
c8bd6d9f7a
|
@ -67,7 +67,7 @@ class ApiAccountRateLimitStatusAction extends ApiBareAuthAction
|
||||||
|
|
||||||
if (!in_array($this->format, array('xml', 'json'))) {
|
if (!in_array($this->format, array('xml', 'json'))) {
|
||||||
$this->clientError(
|
$this->clientError(
|
||||||
_('API method not found!'),
|
_('API method not found.'),
|
||||||
404,
|
404,
|
||||||
$this->format
|
$this->format
|
||||||
);
|
);
|
||||||
|
|
|
@ -92,6 +92,15 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!in_array($this->format, array('xml', 'json'))) {
|
||||||
|
$this->clientError(
|
||||||
|
_('API method not found.'),
|
||||||
|
404,
|
||||||
|
$this->format
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user.'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
|
@ -135,7 +144,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
common_log_db_error($profile, 'UPDATE', __FILE__);
|
common_log_db_error($profile, 'UPDATE', __FILE__);
|
||||||
$this->serverError(_('Couldn\'t save profile.'));
|
$this->serverError(_('Could not save profile.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,15 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!in_array($this->format, array('xml', 'json'))) {
|
||||||
|
$this->clientError(
|
||||||
|
_('API method not found.'),
|
||||||
|
404,
|
||||||
|
$this->format
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Workaround for PHP returning empty $_POST and $_FILES when POST
|
// Workaround for PHP returning empty $_POST and $_FILES when POST
|
||||||
// length > post_max_size in php.ini
|
// length > post_max_size in php.ini
|
||||||
|
|
||||||
|
@ -104,10 +113,46 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$design = $this->user->getDesign();
|
||||||
|
|
||||||
|
// XXX: This is kinda gross, but before we can add a background
|
||||||
|
// img we have to make sure there's a Design because design ID
|
||||||
|
// is part of the img filename.
|
||||||
|
|
||||||
|
if (empty($design)) {
|
||||||
|
|
||||||
|
$this->user->query('BEGIN');
|
||||||
|
|
||||||
|
// save new design
|
||||||
|
$design = new Design();
|
||||||
|
$id = $design->insert();
|
||||||
|
|
||||||
|
if (empty($id)) {
|
||||||
|
common_log_db_error($id, 'INSERT', __FILE__);
|
||||||
|
$this->clientError(_('Unable to save your design settings.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$original = clone($this->user);
|
||||||
|
$this->user->design_id = $id;
|
||||||
|
$result = $this->user->update($original);
|
||||||
|
|
||||||
|
if (empty($result)) {
|
||||||
|
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||||
|
$this->clientError(_('Unable to save your design settings.'));
|
||||||
|
$this->user->query('ROLLBACK');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->user->query('COMMIT');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Okay, now get the image and add it to the design
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$imagefile = ImageFile::fromUpload('image');
|
$imagefile = ImageFile::fromUpload('image');
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
@ -115,8 +160,6 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$design = $this->user->getDesign();
|
|
||||||
|
|
||||||
$filename = Design::filename(
|
$filename = Design::filename(
|
||||||
$design->id,
|
$design->id,
|
||||||
image_type_to_extension($imagefile->type),
|
image_type_to_extension($imagefile->type),
|
||||||
|
@ -134,16 +177,14 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
$original = clone($design);
|
$original = clone($design);
|
||||||
|
|
||||||
$design->backgroundimage = $filename;
|
$design->backgroundimage = $filename;
|
||||||
|
$design->setDisposition(true, false, ($this->tile == 'true'));
|
||||||
$design->setDisposition(true, false, !empty($this->tile));
|
|
||||||
|
|
||||||
$result = $design->update($original);
|
$result = $design->update($original);
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($design, 'UPDATE', __FILE__);
|
common_log_db_error($design, 'UPDATE', __FILE__);
|
||||||
$this->showForm(_('Couldn\'t update your design.'));
|
$this->showForm(_('Could not update your design.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,7 +195,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
$twitter_user = $this->twitterUserArray($profile, true);
|
||||||
|
|
||||||
if ($this->format == 'xml') {
|
if ($this->format == 'xml') {
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
|
|
|
@ -113,6 +113,15 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!in_array($this->format, array('xml', 'json'))) {
|
||||||
|
$this->clientError(
|
||||||
|
_('API method not found.'),
|
||||||
|
404,
|
||||||
|
$this->format
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$design = $this->user->getDesign();
|
$design = $this->user->getDesign();
|
||||||
|
|
||||||
if (!empty($design)) {
|
if (!empty($design)) {
|
||||||
|
@ -130,7 +139,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($design, 'UPDATE', __FILE__);
|
common_log_db_error($design, 'UPDATE', __FILE__);
|
||||||
$this->clientError(_('Couldn\'t update your design.'));
|
$this->clientError(_('Could not update your design.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,7 +161,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
||||||
|
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
common_log_db_error($id, 'INSERT', __FILE__);
|
common_log_db_error($id, 'INSERT', __FILE__);
|
||||||
$this->clientError(_('Unable to save your design settings!'));
|
$this->clientError(_('Unable to save your design settings.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,7 +171,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
||||||
|
|
||||||
if (empty($result)) {
|
if (empty($result)) {
|
||||||
common_log_db_error($original, 'UPDATE', __FILE__);
|
common_log_db_error($original, 'UPDATE', __FILE__);
|
||||||
$this->clientError(_('Unable to save your design settings!'));
|
$this->clientError(_('Unable to save your design settings.'));
|
||||||
$this->user->query('ROLLBACK');
|
$this->user->query('ROLLBACK');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -177,7 +186,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
$twitter_user = $this->twitterUserArray($profile, true);
|
||||||
|
|
||||||
if ($this->format == 'xml') {
|
if ($this->format == 'xml') {
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
|
|
|
@ -102,7 +102,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($this->user)) {
|
if (empty($this->user)) {
|
||||||
$this->clientError(_('No such user!'), 404, $this->format);
|
$this->clientError(_('No such user.'), 404, $this->format);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
|
||||||
|
|
||||||
common_broadcast_profile($profile);
|
common_broadcast_profile($profile);
|
||||||
|
|
||||||
$twitter_user = $this->twitterUserArray($this->user->getProfile(), true);
|
$twitter_user = $this->twitterUserArray($profile, true);
|
||||||
|
|
||||||
if ($this->format == 'xml') {
|
if ($this->format == 'xml') {
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user