function photos_post(App $a)
{
- Logger::log('mod-photos: photos_post: begin' , Logger::DEBUG);
- Logger::log('mod_photos: REQUEST ' . print_r($_REQUEST, true), Logger::DATA);
- Logger::log('mod_photos: FILES ' . print_r($_FILES, true), Logger::DATA);
-
$phototypes = Images::supportedTypes();
$can_post = false;
if (!$owner_record) {
notice(DI::l10n()->t('Contact information unavailable'));
- Logger::log('photos_post: unable to locate contact record for page owner. uid=' . $page_owner_uid);
+ DI::logger()->info('photos_post: unable to locate contact record for page owner. uid=' . $page_owner_uid);
exit();
}
+ $aclFormatter = DI::aclFormatter();
+ $str_contact_allow = isset($_REQUEST['contact_allow']) ? $aclFormatter->toString($_REQUEST['contact_allow']) : $owner_record['allow_cid'] ?? '';
+ $str_group_allow = isset($_REQUEST['group_allow']) ? $aclFormatter->toString($_REQUEST['group_allow']) : $owner_record['allow_gid'] ?? '';
+ $str_contact_deny = isset($_REQUEST['contact_deny']) ? $aclFormatter->toString($_REQUEST['contact_deny']) : $owner_record['deny_cid'] ?? '';
+ $str_group_deny = isset($_REQUEST['group_deny']) ? $aclFormatter->toString($_REQUEST['group_deny']) : $owner_record['deny_gid'] ?? '';
+
+ $visibility = $_REQUEST['visibility'] ?? '';
+ if ($visibility === 'public') {
+ // The ACL selector introduced in version 2019.12 sends ACL input data even when the Public visibility is selected
+ $str_contact_allow = $str_group_allow = $str_contact_deny = $str_group_deny = '';
+ } else if ($visibility === 'custom') {
+ // Since we know from the visibility parameter the item should be private, we have to prevent the empty ACL
+ // case that would make it public. So we always append the author's contact id to the allowed contacts.
+ // See https://github.com/friendica/friendica/issues/9672
+ $str_contact_allow .= $aclFormatter->toString(Contact::getPublicIdByUserId($page_owner_uid));
+ }
+
if ($a->argc > 3 && $a->argv[2] === 'album') {
if (!Strings::isHex($a->argv[3])) {
DI::baseUrl()->redirect('photos/' . $a->data['user']['nickname'] . '/album');
$albname = !empty($_POST['albname']) ? trim($_POST['albname']) : '';
$origaname = !empty($_POST['origaname']) ? Strings::escapeTags(trim($_POST['origaname'])) : '';
- $aclFormatter = DI::aclFormatter();
-
- $str_group_allow = !empty($_POST['group_allow']) ? $aclFormatter->toString($_POST['group_allow']) : '';
- $str_contact_allow = !empty($_POST['contact_allow']) ? $aclFormatter->toString($_POST['contact_allow']) : '';
- $str_group_deny = !empty($_POST['group_deny']) ? $aclFormatter->toString($_POST['group_deny']) : '';
- $str_contact_deny = !empty($_POST['contact_deny']) ? $aclFormatter->toString($_POST['contact_deny']) : '';
-
$resource_id = $a->argv[3];
if (!strlen($albname)) {
$visible = 0;
}
- $group_allow = $_REQUEST['group_allow'] ?? [];
- $contact_allow = $_REQUEST['contact_allow'] ?? [];
- $group_deny = $_REQUEST['group_deny'] ?? [];
- $contact_deny = $_REQUEST['contact_deny'] ?? [];
-
- $aclFormatter = DI::aclFormatter();
-
- $str_group_allow = $aclFormatter->toString(is_array($group_allow) ? $group_allow : explode(',', $group_allow));
- $str_contact_allow = $aclFormatter->toString(is_array($contact_allow) ? $contact_allow : explode(',', $contact_allow));
- $str_group_deny = $aclFormatter->toString(is_array($group_deny) ? $group_deny : explode(',', $group_deny));
- $str_contact_deny = $aclFormatter->toString(is_array($contact_deny) ? $contact_deny : explode(',', $contact_deny));
-
$ret = ['src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''];
Hook::callAll('photo_post_file', $ret);
continue;
}
- $profile_url = Contact::magicLinkbyId($item['author-id']);
+ $profile_url = Contact::magicLinkById($item['author-id']);
if (strpos($profile_url, 'redir/') === 0) {
$sparkle = ' sparkle';
} else {