nextcloud/apps/calendar/ajax/share/share.php

59 lines
1.6 KiB
PHP
Raw Normal View History

<?php
/**
* Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
$id = strip_tags($_GET['id']);
$idtype = strip_tags($_GET['idtype']);
switch($idtype){
case 'calendar':
case 'event':
break;
default:
2012-06-06 13:46:11 +04:00
OCP\JSON::error(array('message'=>'unexpected parameter'));
exit;
}
if($idtype == 'calendar' && !OC_Calendar_App::getCalendar($id)){
2012-05-03 14:23:29 +04:00
OCP\JSON::error(array('message'=>'permission denied'));
exit;
}
if($idtype == 'event' && !OC_Calendar_App::getEventObject($id)){
2012-05-03 14:23:29 +04:00
OCP\JSON::error(array('message'=>'permission denied'));
exit;
}
$sharewith = $_GET['sharewith'];
$sharetype = strip_tags($_GET['sharetype']);
switch($sharetype){
case 'user':
case 'group':
case 'public':
break;
default:
2012-06-06 13:46:11 +04:00
OCP\JSON::error(array('message'=>'unexpected parameter'));
exit;
}
if($sharetype == 'user' && !OCP\User::userExists($sharewith)){
2012-05-03 14:23:29 +04:00
OCP\JSON::error(array('message'=>'user not found'));
exit;
}
if($sharetype == 'group' && !OC_Group::groupExists($sharewith)){
2012-05-03 14:23:29 +04:00
OCP\JSON::error(array('message'=>'group not found'));
exit;
}
2012-05-01 20:50:31 +04:00
if($sharetype == 'user' && OCP\USER::getUser() == $sharewith){
2012-06-06 13:46:11 +04:00
OCP\JSON::error(array('message'=>'you can not share with yourself'));
}
2012-05-01 20:50:31 +04:00
$success = OC_Calendar_Share::share(OCP\USER::getUser(), $sharewith, $sharetype, $id, (($idtype=='calendar') ? OC_Calendar_Share::CALENDAR : OC_Calendar_Share::EVENT));
if($success){
if($sharetype == 'public'){
2012-05-03 14:23:29 +04:00
OCP\JSON::success(array('message'=>$success));
}else{
2012-05-03 14:23:29 +04:00
OCP\JSON::success(array('message'=>'shared'));
}
}else{
2012-05-03 14:23:29 +04:00
OCP\JSON::error(array('message'=>'can not share'));
exit;
}