]> git.mxchange.org Git - friendica.git/blobdiff - include/event.php
Automatically refresh after two minutes when system is overloaded
[friendica.git] / include / event.php
index befda64eb1162e2d7bb384ccd79a51e5eb6f8a2c..7b77ee8d61bdfaa54b339ad71ea4d79ce3258bac 100644 (file)
@@ -818,7 +818,25 @@ function widget_events() {
        // of the profile page it should be the personal /events page. So we can use $a->user
        $user = ($a->data['user']['nickname'] ? $a->data['user']['nickname'] : $a->user['nickname']);
 
-       if( !(local_user() )&& !(feature_enabled($owner_uid, "export_calendar")) )
+
+       // The permission testing is a little bit tricky because we have to respect many cases
+
+       // It's not the private events page (we don't get the $owner_uid for /events)
+       if(! local_user() && ! $owner_uid)
+               return;
+
+       // Cal logged in user (test permission at foreign profile page)
+       // If the $owner uid is available we know it is part of one of the profile pages (like /cal)
+       // So we have to test if if it's the own profile page of the logged in user 
+       // or a foreign one. For foreign profile pages we need to check if the feature
+       // for exporting the cal is enabled (otherwise the widget would appear for logged in users
+       // on foreigen profile pages even if the widget is disabled)
+       if(intval($owner_uid) && local_user() !== $owner_uid && ! feature_enabled($owner_uid, "export_calendar")) 
+               return;
+
+       // If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and
+       // export feature isn't enabled
+       if(intval($owner_uid) && ! local_user() && ! feature_enabled($owner_uid, "export_calendar"))
                return;
 
        return replace_macros(get_markup_template("events_aside.tpl"), array(