aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-01-22 17:48:42 -0800
committerfriendica <info@friendica.com>2013-01-22 17:48:42 -0800
commitcf2488e999944ca1135ac62955527a376ad0eac2 (patch)
treec9f2981c7c340b66fe5bbc9cc76e7b981deeea45 /mod
parentbeb3301d43c0d532bd6984ee745074479babdabb (diff)
downloadvolse-hubzilla-cf2488e999944ca1135ac62955527a376ad0eac2.tar.gz
volse-hubzilla-cf2488e999944ca1135ac62955527a376ad0eac2.tar.bz2
volse-hubzilla-cf2488e999944ca1135ac62955527a376ad0eac2.zip
clean up the photo storage backend, revamp mod/wall_upload
Diffstat (limited to 'mod')
-rw-r--r--mod/intro.php7
-rw-r--r--mod/photos.php11
-rw-r--r--mod/profile_photo.php11
-rw-r--r--mod/wall_upload.php159
4 files changed, 105 insertions, 83 deletions
diff --git a/mod/intro.php b/mod/intro.php
index dd98a6c7b..5b660485a 100644
--- a/mod/intro.php
+++ b/mod/intro.php
@@ -6,9 +6,10 @@ function intro_post(&$a) {
if(! intval($_REQUEST['contact_id']))
return;
+ $approved = false;
$flags = 0;
if($_REQUEST['submit'] == t('Approve')) {
- ;
+ $approved = true;
}
elseif($_REQUEST['submit'] == t('Block')) {
$flags = ABOOK_FLAG_BLOCKED;
@@ -29,6 +30,10 @@ function intro_post(&$a) {
else
notice( t('Connection update failed.') . EOL);
+ if($approved)
+ goaway(z_root() . '/connections/' . $_REQUEST['contact_id']);
+
+
}
function intro_aside(&$a) {
diff --git a/mod/photos.php b/mod/photos.php
index 90f436699..eaf35cc20 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -30,7 +30,7 @@ function photos_init(&$a) {
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['channel']['channel_name'] . '</div>';
- $o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_cached_avatar_image($a->get_baseurl() . '/photo/profile/l/' . $a->data['channel']['channel_id']) . '" alt="' . $a->data['channel']['channel_name'] . '" /></div>';
+ $o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->get_baseurl() . '/photo/profile/l/' . $a->data['channel']['channel_id'] . '" alt="' . $a->data['channel']['channel_name'] . '" /></div>';
$o .= '</div>';
@@ -790,7 +790,9 @@ function photos_post(&$a) {
$photo_hash = photo_new_resource();
- $r = $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 0 , 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
+ $page_owner_aid = $a->data['channel']['channel_account_id'];
+
+ $r = $ph->store($page_owner_aid, $page_owner_uid, $visitor, $photo_hash, $filename, $album, 0 , 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
if(! $r) {
logger('mod/photos.php: photos_post(): image store failed' , LOGGER_DEBUG);
@@ -800,13 +802,13 @@ function photos_post(&$a) {
if($width > 640 || $height > 640) {
$ph->scaleImage(640);
- $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 1, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
+ $ph->store($page_owner_aid, $page_owner_uid, $visitor, $photo_hash, $filename, $album, 1, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
$smallest = 1;
}
if($width > 320 || $height > 320) {
$ph->scaleImage(320);
- $ph->store($page_owner_uid, $visitor, $photo_hash, $filename, $album, 2, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
+ $ph->store($page_owner_aid, $page_owner_uid, $visitor, $photo_hash, $filename, $album, 2, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
$smallest = 2;
}
@@ -928,6 +930,7 @@ function photos_content(&$a) {
$contact_id = 0;
$owner_uid = $a->data['channel']['channel_id'];
+ $owner_aid = $a->data['channel']['channel_account_id'];
$community_page = (($a->data['user']['page-flags'] == PAGE_COMMUNITY) ? true : false);
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index d1e24269a..1bee046d1 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -81,8 +81,9 @@ function profile_photo_post(&$a) {
$im = new Photo($base_image['data'], $base_image['type']);
if($im->is_valid()) {
$im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
+ $aid = get_account_id();
- $r = $im->store(local_user(), 0, $base_image['resource_id'],$base_image['filename'],
+ $r = $im->store($aid, local_user(), '', $base_image['resource_id'],$base_image['filename'],
t('Profile Photos'), 4, $is_default_profile);
if($r === false)
@@ -90,7 +91,7 @@ function profile_photo_post(&$a) {
$im->scaleImage(80);
- $r = $im->store(local_user(), 0, $base_image['resource_id'],$base_image['filename'],
+ $r = $im->store($aid, local_user(), '', $base_image['resource_id'],$base_image['filename'],
t('Profile Photos'), 5, $is_default_profile);
if($r === false)
@@ -98,7 +99,7 @@ function profile_photo_post(&$a) {
$im->scaleImage(48);
- $r = $im->store(local_user(), 0, $base_image['resource_id'],$base_image['filename'],
+ $r = $im->store($aid, local_user(), '', $base_image['resource_id'],$base_image['filename'],
t('Profile Photos'), 6, $is_default_profile);
if($r === false)
@@ -308,7 +309,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
$smallest = 0;
- $r = $ph->store(local_user(), 0 , $hash, $filename, t('Profile Photos'), 0 );
+ $r = $ph->store(get_account_id(), local_user(), '', $hash, $filename, t('Profile Photos'), 0 );
if($r)
info( t('Image uploaded successfully.') . EOL );
@@ -317,7 +318,7 @@ function profile_photo_crop_ui_head(&$a, $ph){
if($width > 640 || $height > 640) {
$ph->scaleImage(640);
- $r = $ph->store(local_user(), 0 , $hash, $filename, t('Profile Photos'), 1 );
+ $r = $ph->store(get_account_id(), local_user(), '' , $hash, $filename, t('Profile Photos'), 1 );
if($r === false)
notice( sprintf(t('Image size reduction [%s] failed.'),"640") . EOL );
diff --git a/mod/wall_upload.php b/mod/wall_upload.php
index c695f9b3e..a3dcf9a0b 100644
--- a/mod/wall_upload.php
+++ b/mod/wall_upload.php
@@ -2,72 +2,58 @@
require_once('Photo.php');
+
+
+
function wall_upload_post(&$a) {
- if(argc() > 1) {
- if(! x($_FILES,'media')) {
+ $using_api = ((x($_FILES,'media')) ? true : false);
+
+ if($using_api) {
+ require_once('include/api.php');
+ $user_info = api_get_user($a);
+ $nick = $user_info['screen_name'];
+ }
+ else {
+ if(argc() > 1)
$nick = argv(1);
- }
- else {
- $user_info = api_get_user($a);
- $nick = $user_info['screen_name'];
- }
+ }
+
+ $channel = null;
+
+ if($nick) {
$r = q("SELECT channel.* from channel where channel_address = '%s' limit 1",
dbesc($nick)
);
- if(! ($r && count($r)))
- return;
- $channel = $r[0];
+ if($r)
+ $channel = $r[0];
}
- else
- return;
+ if(! $channel) {
+ if($using_api)
+ return;
+ else {
+ notice( t('Channel not found.') . EOL);
+ killme();
+ }
+ }
$can_post = false;
$visitor = 0;
+
$page_owner_uid = $r[0]['channel_id'];
-// $default_cid = $r[0]['id'];
-
- $page_owner_nick = $r[0]['channel_address'];
-
-// $community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
-
- if((local_user()) && (local_user() == $page_owner_uid))
- $can_post = true;
-
-// else {
-// if($community_page && remote_user()) {
-// $cid = 0;
-// if(is_array($_SESSION['remote'])) {
-// foreach($_SESSION['remote'] as $v) {
-// if($v['uid'] == $page_owner_uid) {
-// $cid = $v['cid'];
-// break;
-// }
-// }
-// }
-// if($cid) {
-
-// $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
-// intval($cid),
-// intval($page_owner_uid)
-// );
-// if(count($r)) {
-// $can_post = true;
-// $visitor = $cid;
-// }
-// }
-// }
-// }
-
- if(! $can_post) {
- notice( t('Permission denied.') . EOL );
- killme();
- }
-
- if(! x($_FILES,'userfile') && ! x($_FILES,'media'))
- killme();
+
+ $observer = $a->get_observer();
+
+ if(! perm_is_allowed($page_owner_uid,$observer['xchan_hash'],'post_photos')) {
+ if($using_api)
+ return;
+ else {
+ notice( t('Permission denied.') . EOL);
+ killme();
+ }
+ }
if(x($_FILES,'userfile')) {
$src = $_FILES['userfile']['tmp_name'];
@@ -81,36 +67,58 @@ function wall_upload_post(&$a) {
$filesize = intval($_FILES['media']['size']);
$filetype = $_FILES['media']['type'];
}
+ else {
+ if($using_api)
+ return;
+ else {
+ notice( t('Empty upload.') . EOL);
+ killme();
+ }
+ }
+
- if ($filetype=="") $filetype=guess_image_type($filename);
+ if($filetype == "")
+ $filetype=guess_image_type($filename);
$maximagesize = get_config('system','maximagesize');
if(($maximagesize) && ($filesize > $maximagesize)) {
- echo sprintf( t('Image exceeds size limit of %d'), $maximagesize) . EOL;
@unlink($src);
- killme();
+ if($using_api)
+ return;
+ else {
+ echo sprintf( t('Image exceeds size limit of %d'), $maximagesize) . EOL;
+ killme();
+ }
}
- $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
- intval($page_owner_uid)
- );
$limit = service_class_fetch($page_owner_uid,'photo_upload_limit');
-
- if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
- echo upgrade_message(true) . EOL ;
- @unlink($src);
- killme();
+ if($limit !== false) {
+ $r = q("select sum(size) as total from photo where uid = %d and scale = 0 ",
+ intval($page_owner_uid)
+ );
+ if(($r) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
+ @unlink($src);
+ if($using_api)
+ return;
+ else {
+ echo upgrade_message(true) . EOL ;
+ killme();
+ }
+ }
}
-
$imagedata = @file_get_contents($src);
$ph = new Photo($imagedata, $filetype);
if(! $ph->is_valid()) {
- echo ( t('Unable to process image.') . EOL);
@unlink($src);
- killme();
+ if($using_api)
+ return;
+ else {
+ echo ( t('Unable to process image.') . EOL);
+ killme();
+ }
}
$ph->orient($src);
@@ -130,31 +138,36 @@ function wall_upload_post(&$a) {
$smallest = 0;
$defperm = '<' . $channel['channel_hash'] . '>';
+ $aid = $channel['channel_account_id'];
+ $visitor = ((remote_user()) ? remote_user() : '');
- $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
+ $r = $ph->store($aid, $page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
if(! $r) {
- echo ( t('Image upload failed.') . EOL);
- killme();
+ if($using_api)
+ return;
+ else {
+ echo ( t('Image upload failed.') . EOL);
+ killme();
+ }
}
if($width > 640 || $height > 640) {
$ph->scaleImage(640);
- $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
+ $r = $ph->store($aid, $page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
if($r)
$smallest = 1;
}
if($width > 320 || $height > 320) {
$ph->scaleImage(320);
- $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
+ $r = $ph->store($aid, $page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
if($r)
$smallest = 2;
}
$basename = basename($filename);
-
if($_REQUEST['silent']) {
$m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]";
return($m);