Merge pull request #2734 from rabuzarus/1308-cal-export-perms

fix: own calendar is now always exportable for local_user()
This commit is contained in:
Michael Vogel 2016-08-13 15:20:59 +02:00 committed by GitHub
commit 5069d5f94e

View file

@ -304,25 +304,32 @@ function cal_content(&$a) {
// Test permissions // Test permissions
// Respect the export feature setting for all other /cal pages if it's not the own profile // Respect the export feature setting for all other /cal pages if it's not the own profile
if( ((local_user() !== $owner_uid)) && ! feature_enabled($owner_uid, "export_calendar")) { if( ((local_user() !== intval($owner_uid))) && ! feature_enabled($owner_uid, "export_calendar")) {
notice( t('Permission denied.') . EOL); notice( t('Permission denied.') . EOL);
return; goaway('cal/' . $nick);
} }
// Get the export data by uid // Get the export data by uid
$evexport = event_export($owner_uid, $format); $evexport = event_export($owner_uid, $format);
if ($evexport["success"] == false ) { if (!$evexport["success"]) {
if($evexport["content"]) if($evexport["content"])
notice( t('This calendar format is not supported') ); notice( t('This calendar format is not supported') );
else else
notice( t('No exportable data found')); 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 nothing went wrong we can echo the export content
if ($evexport["success"] == true ) { if ($evexport["success"]) {
header('Content-type: text/calendar'); header('Content-type: text/calendar');
header('content-disposition: attachment; filename="' . t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"' ); header('content-disposition: attachment; filename="' . t('calendar') . '-' . $nick . '.' . $evexport["extension"] . '"' );
echo $evexport["content"]; echo $evexport["content"];