]> git.mxchange.org Git - friendica.git/blobdiff - mod/cal.php
Merge branch 'master'
[friendica.git] / mod / cal.php
index 5dab182e713f8463a5e87ed0f1b42cf488c6013e..ab20617257160722047ef9906022add163986165 100644 (file)
@@ -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']);
@@ -302,25 +302,34 @@ function cal_content(&$a) {
                        return;
                }
 
-               if( !(local_user()) && !(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"];