diff options
author | Mario Vavti <mario@mariovavti.com> | 2016-12-23 10:09:46 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2016-12-23 10:09:46 +0100 |
commit | 3b9b03cf86979b28e7fa249133176bed84b0105c (patch) | |
tree | 336dc8b8b9627e7f4a93e5c35fe3e98555274616 /include/photos.php | |
parent | 2e5a993f880d619aedf3693927e7b3e164fbfcc0 (diff) | |
parent | ef39c1e94b5149a3019d417d08dc7c16c8aef9c1 (diff) | |
download | volse-hubzilla-3b9b03cf86979b28e7fa249133176bed84b0105c.tar.gz volse-hubzilla-3b9b03cf86979b28e7fa249133176bed84b0105c.tar.bz2 volse-hubzilla-3b9b03cf86979b28e7fa249133176bed84b0105c.zip |
Merge branch '2.0RC'
Diffstat (limited to 'include/photos.php')
-rw-r--r-- | include/photos.php | 99 |
1 files changed, 50 insertions, 49 deletions
diff --git a/include/photos.php b/include/photos.php index a3018816c..5e4d755e3 100644 --- a/include/photos.php +++ b/include/photos.php @@ -28,7 +28,8 @@ function photo_upload($channel, $observer, $args) { return $ret; } -// call_hooks('photo_upload_begin', $args); + +//call_hooks('photo_upload_begin', $args); /* * Determine the album to use @@ -45,7 +46,7 @@ function photo_upload($channel, $observer, $args) { if(array_key_exists('deliver',$args)) $deliver = intval($args['deliver']); - // Set to default channel permissions. If the parent directory (album) has permissions set, + // Set to default channel permissions. If the parent directory (album) has permissions set, // use those instead. If we have specific permissions supplied, they take precedence over // all other settings. 'allow_cid' being passed from an external source takes priority over channel settings. // ...messy... needs re-factoring once the photos/files integration stabilises @@ -55,9 +56,9 @@ function photo_upload($channel, $observer, $args) { $acl->set($args['directory']); if(array_key_exists('allow_cid',$args)) $acl->set($args); - if( (array_key_exists('group_allow',$args)) - || (array_key_exists('contact_allow',$args)) - || (array_key_exists('group_deny',$args)) + if( (array_key_exists('group_allow',$args)) + || (array_key_exists('contact_allow',$args)) + || (array_key_exists('group_deny',$args)) || (array_key_exists('contact_deny',$args))) { $acl->set_from_array($args); } @@ -103,7 +104,7 @@ function photo_upload($channel, $observer, $args) { $type = $_FILES['userfile']['type']; } - if (! $type) + if (! $type) $type=guess_image_type($filename); logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); @@ -176,7 +177,7 @@ function photo_upload($channel, $observer, $args) { $errors = false; $p = array('aid' => $account_id, 'uid' => $channel_id, 'xchan' => $visitor, 'resource_id' => $photo_hash, - 'filename' => $filename, 'album' => $album, 'imgscale' => 0, 'photo_usage' => PHOTO_NORMAL, + 'filename' => $filename, 'album' => $album, 'imgscale' => 0, 'photo_usage' => PHOTO_NORMAL, 'allow_cid' => $ac['allow_cid'], 'allow_gid' => $ac['allow_gid'], 'deny_cid' => $ac['deny_cid'], 'deny_gid' => $ac['deny_gid'], 'os_storage' => $os_storage, 'os_path' => $args['os_path'] @@ -220,8 +221,8 @@ function photo_upload($channel, $observer, $args) { ); if(! $r1) $errors = true; - - if(($width > 640 || $height > 640) && (! $errors)) + + if(($width > 640 || $height > 640) && (! $errors)) $ph->scaleImage(640); $p['imgscale'] = 2; @@ -236,7 +237,7 @@ function photo_upload($channel, $observer, $args) { if(! $r2) $errors = true; - if(($width > 320 || $height > 320) && (! $errors)) + if(($width > 320 || $height > 320) && (! $errors)) $ph->scaleImage(320); $p['imgscale'] = 3; @@ -304,8 +305,8 @@ function photo_upload($channel, $observer, $args) { $summary = (($args['body']) ? $args['body'] : '') . '[footer]' . $activity_format . '[/footer]'; - $obj_body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' - . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' + $obj_body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' + . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' . '[/zrl]'; // Create item object @@ -361,7 +362,7 @@ function photo_upload($channel, $observer, $args) { $item['uid'] = $channel['channel_id']; item_store_update($item,false,$deliver); continue; - } + } } else { $item['aid'] = $channel['channel_account_id']; @@ -381,7 +382,7 @@ function photo_upload($channel, $observer, $args) { $arr['aid'] = $account_id; $arr['uid'] = $channel_id; $arr['mid'] = $mid; - $arr['parent_mid'] = $mid; + $arr['parent_mid'] = $mid; $arr['item_hidden'] = $item_hidden; $arr['resource_type'] = 'photo'; $arr['resource_id'] = $photo_hash; @@ -407,10 +408,10 @@ function photo_upload($channel, $observer, $args) { // this one is tricky because the item and the photo have the same permissions, those of the photo. // Use the channel read_stream permissions to get the correct public_policy for the item and recalculate the - // private flag accordingly. This may cause subtle bugs due to custom permissions roles. We want to use + // private flag accordingly. This may cause subtle bugs due to custom permissions roles. We want to use // public policy when federating items to other sites, but should probably ignore them when accessing the item // in the photos pages - using the photos permissions instead. We need the public policy to keep the photo - // linked item from leaking into the feed when somebody has a channel with read_stream restrictions. + // linked item from leaking into the feed when somebody has a channel with read_stream restrictions. $arr['public_policy'] = map_scope(\Zotlabs\Access\PermissionLimits::Get($channel['channel_id'],'view_stream'),true); if($arr['public_policy']) @@ -421,7 +422,7 @@ function photo_upload($channel, $observer, $args) { $result = item_store($arr,false,$deliver); $item_id = $result['item_id']; - if($visible && $deliver) + if($visible && $deliver) Zotlabs\Daemon\Master::Summon(array('Notifier', 'wall-new', $item_id)); } @@ -443,9 +444,12 @@ function photo_upload($channel, $observer, $args) { * * @param array $channel * @param array $observer + * @param array $sort_key (optional) default album + * @param array $direction (optional) default asc + * * @return bool|array false if no view_storage permission or an array - * * success (bool) - * * albums (array) + * * \e boolean \b success + * * \e array \b albums */ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction = 'asc') { @@ -455,14 +459,11 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction if(! perm_is_allowed($channel_id, $observer_xchan, 'view_storage')) return false; - $sql_extra = permissions_sql($channel_id,$observer_xchan); $sort_key = dbesc($sort_key); $direction = dbesc($direction); - - $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and photo_usage IN ( %d, %d ) $sql_extra group by album order by $sort_key $direction", intval($channel_id), intval(PHOTO_NORMAL), @@ -479,8 +480,8 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction foreach($albums as $k => $album) { $entry = array( 'text' => (($album['album']) ? $album['album'] : '/'), - 'total' => $album['total'], - 'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']), + 'total' => $album['total'], + 'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']), 'urlencode' => urlencode($album['album']), 'bin2hex' => bin2hex($album['album']) ); @@ -506,7 +507,7 @@ function photos_album_widget($channelx,$observer,$sortkey = 'album',$direction = '$title' => t('Photo Albums'), '$albums' => $albums['albums'], '$baseurl' => z_root(), - '$upload' => ((perm_is_allowed($channelx['channel_id'],(($observer) ? $observer['xchan_hash'] : ''),'write_storage')) + '$upload' => ((perm_is_allowed($channelx['channel_id'],(($observer) ? $observer['xchan_hash'] : ''),'write_storage')) ? t('Upload New Photos') : '') )); } @@ -533,7 +534,7 @@ function photos_list_photos($channel, $observer, $album = '') { $sql_extra = permissions_sql($channel_id); if($album) - $sql_extra .= " and album = '" . protect_sprintf(dbesc($album)) . "' "; + $sql_extra .= " and album = '" . protect_sprintf(dbesc($album)) . "' "; $ret = array('success' => false); @@ -647,7 +648,7 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) { $arr['aid'] = $channel['channel_account_id']; $arr['uid'] = $channel['channel_id']; $arr['mid'] = $mid; - $arr['parent_mid'] = $mid; + $arr['parent_mid'] = $mid; $arr['item_wall'] = 1; $arr['item_origin'] = 1; $arr['item_thread_top'] = 1; @@ -663,9 +664,9 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) { $arr['deny_gid'] = $photo['deny_gid']; $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid']; - - $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' - . '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['imgscale'] . '[/zmg]' + + $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' + . '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['imgscale'] . '[/zmg]' . '[/zrl]'; $result = item_store($arr); @@ -710,39 +711,39 @@ function gps2Num($coordPart) { } function profile_photo_set_profile_perms($uid, $profileid = 0) { - + $allowcid = ''; if($profileid) { $r = q("SELECT photo, profile_guid, id, is_default, uid - FROM profile WHERE uid = %d and ( profile.id = %d OR profile.profile_guid = '%s') LIMIT 1", + FROM profile WHERE uid = %d and ( profile.id = %d OR profile.profile_guid = '%s') LIMIT 1", intval($uid), - intval($profileid), + intval($profileid), dbesc($profileid) ); - } + } else { logger('Resetting permissions on default-profile-photo for user'.local_channel()); - $r = q("SELECT photo, profile_guid, id, is_default, uid FROM profile - WHERE profile.uid = %d AND is_default = 1 LIMIT 1", - intval($uid) + $r = q("SELECT photo, profile_guid, id, is_default, uid FROM profile + WHERE profile.uid = %d AND is_default = 1 LIMIT 1", + intval($uid) ); //If no profile is given, we update the default profile } if(! $r) return; - + $profile = $r[0]; - if($profile['id'] && $profile['photo']) { + if($profile['id'] && $profile['photo']) { preg_match("@\w*(?=-\d*$)@i", $profile['photo'], $resource_id); $resource_id = $resource_id[0]; - + if (! intval($profile['is_default'])) { - $r0 = q("SELECT channel_hash FROM channel WHERE channel_id = %d LIMIT 1", - intval($uid) + $r0 = q("SELECT channel_hash FROM channel WHERE channel_id = %d LIMIT 1", + intval($uid) ); //Should not be needed in future. Catches old int-profile-ids. - $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%d' ", + $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%d' ", intval($profile['id']) ); $r2 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%s'", @@ -750,27 +751,27 @@ function profile_photo_set_profile_perms($uid, $profileid = 0) { ); $allowcid = "<" . $r0[0]['channel_hash'] . ">"; foreach ($r1 as $entry) { - $allowcid .= "<" . $entry['abook_xchan'] . ">"; + $allowcid .= "<" . $entry['abook_xchan'] . ">"; } foreach ($r2 as $entry) { $allowcid .= "<" . $entry['abook_xchan'] . ">"; } - + q("UPDATE photo SET allow_cid = '%s' WHERE resource_id = '%s' AND uid = %d", dbesc($allowcid), dbesc($resource_id), intval($uid) ); - - } + + } else { //Reset permissions on default profile picture to public q("UPDATE photo SET allow_cid = '' WHERE photo_usage = %d AND uid = %d", intval(PHOTO_PROFILE), intval($uid) - ); + ); } } - + return; } |