Compare commits
1 commit
master
...
fix/18782/
Author | SHA1 | Date | |
---|---|---|---|
|
709e7447ed |
4 changed files with 47 additions and 10 deletions
|
@ -48,6 +48,9 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
/** @var IL10N */
|
||||
protected $l10n;
|
||||
|
||||
/**
|
||||
* Calendar constructor.
|
||||
*
|
||||
|
@ -68,6 +71,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
}
|
||||
|
||||
$this->config = $config;
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -289,7 +293,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
|
||||
return new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
return new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
|
||||
}
|
||||
|
||||
|
@ -302,7 +306,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
continue;
|
||||
}
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
$children[] = new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
$children[] = new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
}
|
||||
return $children;
|
||||
|
||||
|
@ -317,7 +321,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
|
|||
continue;
|
||||
}
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
$children[] = new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
$children[] = new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
}
|
||||
return $children;
|
||||
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
/**
|
||||
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
||||
* @copyright Copyright (c) 2017, Georg Ehrke
|
||||
* @copyright Copyright (c) 2020, Gary Kim <gary@garykim.dev>
|
||||
*
|
||||
* @author Georg Ehrke <oc.list@georgehrke.com>
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
* @author Gary Kim <gary@garykim.dev>
|
||||
*
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
|
@ -25,26 +27,34 @@
|
|||
namespace OCA\DAV\CalDAV;
|
||||
|
||||
|
||||
use OCP\IL10N;
|
||||
use Sabre\VObject\Component;
|
||||
use Sabre\VObject\Property;
|
||||
use Sabre\VObject\Reader;
|
||||
|
||||
class CalendarObject extends \Sabre\CalDAV\CalendarObject {
|
||||
|
||||
/** @var IL10N */
|
||||
protected $l10n;
|
||||
|
||||
/**
|
||||
* CalendarObject constructor.
|
||||
*
|
||||
* @param CalDavBackend $caldavBackend
|
||||
* @param IL10N $l10n
|
||||
* @param array $calendarInfo
|
||||
* @param array $objectData
|
||||
*/
|
||||
public function __construct(CalDavBackend $caldavBackend, array $calendarInfo,
|
||||
public function __construct(CalDavBackend $caldavBackend, IL10N $l10n,
|
||||
array $calendarInfo,
|
||||
array $objectData) {
|
||||
parent::__construct($caldavBackend, $calendarInfo, $objectData);
|
||||
|
||||
if ($this->isShared()) {
|
||||
unset($this->objectData['size']);
|
||||
}
|
||||
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -84,7 +94,7 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject {
|
|||
* @param Component\VCalendar $vObject
|
||||
* @return void
|
||||
*/
|
||||
private static function createConfidentialObject(Component\VCalendar $vObject) {
|
||||
private function createConfidentialObject(Component\VCalendar $vObject) {
|
||||
/** @var Component $vElement */
|
||||
$vElement = null;
|
||||
if(isset($vObject->VEVENT)) {
|
||||
|
@ -109,7 +119,7 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject {
|
|||
case 'UID':
|
||||
break;
|
||||
case 'SUMMARY':
|
||||
$property->setValue('Busy');
|
||||
$property->setValue($this->l10n->t('Busy'));
|
||||
break;
|
||||
default:
|
||||
$vElement->__unset($property->name);
|
||||
|
|
|
@ -44,7 +44,7 @@ class PublicCalendar extends Calendar {
|
|||
}
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
|
||||
return new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
return new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,7 +58,7 @@ class PublicCalendar extends Calendar {
|
|||
continue;
|
||||
}
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
$children[] = new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
$children[] = new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
}
|
||||
return $children;
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ class PublicCalendar extends Calendar {
|
|||
continue;
|
||||
}
|
||||
$obj['acl'] = $this->getChildACL();
|
||||
$children[] = new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
|
||||
$children[] = new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
|
||||
}
|
||||
return $children;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
||||
* @copyright Copyright (c) 2020, Gary Kim <gary@garykim.dev>
|
||||
*
|
||||
* @author Georg Ehrke <oc.list@georgehrke.com>
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* @author Morris Jobke <hey@morrisjobke.de>
|
||||
* @author Roeland Jago Douma <roeland@famdouma.nl>
|
||||
* @author Thomas Müller <thomas.mueller@tmit.eu>
|
||||
* @author Gary Kim <gary@garykim.dev>
|
||||
*
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
|
@ -73,7 +75,7 @@ class CalendarTest extends TestCase {
|
|||
$c->delete();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function testDeleteFromGroup() {
|
||||
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
|
||||
|
||||
|
@ -427,6 +429,27 @@ EOD;
|
|||
} else {
|
||||
$this->assertEquals('Test Event', $event->VEVENT->SUMMARY->getValue());
|
||||
}
|
||||
|
||||
// Test l10n
|
||||
$l10n = $this->createMock(IL10N::class);
|
||||
if ($isShared) {
|
||||
$l10n->expects($this->once())
|
||||
->method('t')
|
||||
->with('Busy')
|
||||
->willReturn("Translated busy");
|
||||
} else {
|
||||
$l10n->expects($this->never());
|
||||
}
|
||||
$c = new Calendar($backend, $calendarInfo, $l10n, $this->config);
|
||||
|
||||
$calData = $c->getChild('event-1')->get();
|
||||
$event = Reader::read($calData);
|
||||
|
||||
if ($isShared) {
|
||||
$this->assertEquals('Translated busy', $event->VEVENT->SUMMARY->getValue());
|
||||
} else {
|
||||
$this->assertEquals('Test Event', $event->VEVENT->SUMMARY->getValue());
|
||||
}
|
||||
}
|
||||
|
||||
public function providesConfidentialClassificationData() {
|
||||
|
|
Loading…
Reference in a new issue