X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fcal.php;h=ab20617257160722047ef9906022add163986165;hb=0c9cc29a51941eb572bf16fd5489d0947d47d033;hp=e2c84204b4e3beb1aaa98b985d8a46e428abcaa1;hpb=2cac69ca86c81f492332f7b2f0fb792ba8f507db;p=friendica.git diff --git a/mod/cal.php b/mod/cal.php index e2c84204b4..ab20617257 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -156,7 +156,7 @@ function cal_content(&$a) { // 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_extra = " AND `event`.`cid` = 0 " . $sql_perms; // get the tab navigation bar $tabs .= profile_tabs($a,false, $a->data['user']['nickname']); @@ -303,25 +303,33 @@ function cal_content(&$a) { } // Test permissions - if( ((local_user() !== $owner_uid)) && !(feature_enabled($owner_uid, "export_calendar"))) { + // 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"];