X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fevent.php;h=7b77ee8d61bdfaa54b339ad71ea4d79ce3258bac;hb=0ed93df91fcf6cfc1d65ee3e013e4f79eae55ef7;hp=befda64eb1162e2d7bb384ccd79a51e5eb6f8a2c;hpb=49c19a3c00ea11b8c6b1839f4c7d9f4165c9353f;p=friendica.git diff --git a/include/event.php b/include/event.php index befda64eb1..7b77ee8d61 100644 --- a/include/event.php +++ b/include/event.php @@ -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(