Invalid caldav user info
Added error checking for invalid iprincipal url caldav info Change-Id: I826d5dad7070eb7b7a748e337b2ca04922348aa6
This commit is contained in:
parent
c9cc73495b
commit
dfb9c528fa
@ -104,6 +104,13 @@ class CalendarSyncInfoCalDav extends CalendarSyncInfo
|
||||
*/
|
||||
public function getServer(){
|
||||
$result = parse_url($this->user_principal_url);
|
||||
|
||||
if(!$result) throw new \InvalidArgumentException(sprintf("user_principal_url %s is invalid", $this->user_principal_url));
|
||||
if(!isset($result['scheme']))
|
||||
throw new \InvalidArgumentException(sprintf("user_principal_url %s is invalid", $this->user_principal_url));
|
||||
if(!isset($result['host']))
|
||||
throw new \InvalidArgumentException(sprintf("user_principal_url %s is invalid", $this->user_principal_url));
|
||||
|
||||
return $result['scheme']."://".$result['host'];
|
||||
}
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
||||
**/
|
||||
use App\Services\Apis\CalendarSync\ICalendarSyncRemoteFacadeFactory;
|
||||
use models\summit\CalendarSync\CalendarSyncInfo;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
/**
|
||||
* Class CalendarSyncRemoteFacadeFactory
|
||||
* @package services\apis\CalendarSync
|
||||
@ -24,17 +25,23 @@ final class CalendarSyncRemoteFacadeFactory implements ICalendarSyncRemoteFacade
|
||||
* @return ICalendarSyncRemoteFacade|null
|
||||
*/
|
||||
public function build(CalendarSyncInfo $sync_calendar_info){
|
||||
switch($sync_calendar_info->getProvider()){
|
||||
case CalendarSyncInfo::ProviderGoogle:
|
||||
return new GoogleCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
case CalendarSyncInfo::ProvideriCloud:
|
||||
return new ICloudCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
case CalendarSyncInfo::ProviderOutlook:
|
||||
return new OutlookCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
try {
|
||||
switch ($sync_calendar_info->getProvider()) {
|
||||
case CalendarSyncInfo::ProviderGoogle:
|
||||
return new GoogleCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
case CalendarSyncInfo::ProvideriCloud:
|
||||
return new ICloudCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
case CalendarSyncInfo::ProviderOutlook:
|
||||
return new OutlookCalendarSyncRemoteFacade($sync_calendar_info);
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
catch (\Exception $ex){
|
||||
Log::warning($ex);
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user