X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fcal.php;h=ab20617257160722047ef9906022add163986165;hb=0c9cc29a51941eb572bf16fd5489d0947d47d033;hp=a12a653426da7d3dd684d5256e644cb360a93a46;hpb=71c9f562ae4664beef2da6ee11c0f38d3e4eb094;p=friendica.git diff --git a/mod/cal.php b/mod/cal.php index a12a653426..ab20617257 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -153,7 +153,10 @@ function cal_content(&$a) { return; } - $sql_extra = item_permissions_sql($owner_uid,$remote_contact,$groups); + // get the permissions + $sql_perms = item_permissions_sql($owner_uid,$remote_contact,$groups); + // we only want to have the events of the profile owner + $sql_extra = " AND `event`.`cid` = 0 " . $sql_perms; // get the tab navigation bar $tabs .= profile_tabs($a,false, $a->data['user']['nickname']); @@ -299,25 +302,34 @@ function cal_content(&$a) { return; } - if(! (feature_enabled($owner_uid, "export_calendar"))) { + // Test permissions + // Respect the export feature setting for all other /cal pages if it's not the own profile + if( ((local_user() !== intval($owner_uid))) && ! feature_enabled($owner_uid, "export_calendar")) { notice( t('Permission denied.') . EOL); - return; + goaway('cal/' . $nick); } // Get the export data by uid $evexport = event_export($owner_uid, $format); - if ($evexport["success"] == false ) { + if (!$evexport["success"]) { if($evexport["content"]) notice( t('This calendar format is not supported') ); else notice( t('No exportable data found')); - return; + // If it the own calendar return to the events page + // otherwise to the profile calendar page + if (local_user() === intval($owner_uid)) + $return_path = "events"; + else + $returnpath = "cal/".$nick; + + goaway($return_path); } // If nothing went wrong we can echo the export content - if ($evexport["success"] == true ) { + if ($evexport["success"]) { header('Content-type: text/calendar'); header('content-disposition: attachment; filename="' . t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"' ); echo $evexport["content"];