diff --git a/lib/Controller/EditorApiController.php b/lib/Controller/EditorApiController.php index cdda6a67..388eeae4 100644 --- a/lib/Controller/EditorApiController.php +++ b/lib/Controller/EditorApiController.php @@ -38,6 +38,7 @@ use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\OCSController; use OCP\AppFramework\QueryException; +use OCA\DAV\CalDAV\TimezoneService; use OCP\Constants; use OCP\Files\File; use OCP\Files\Folder; @@ -155,6 +156,13 @@ class EditorApiController extends OCSController { */ private $avatarManager; + /** + * Timezone service + * + * @var TimezoneService + */ + private $timezoneService; + /** * Mobile regex from https://github.com/ONLYOFFICE/CommunityServer/blob/v9.1.1/web/studio/ASC.Web.Studio/web.appsettings.config#L35 */ @@ -175,6 +183,7 @@ class EditorApiController extends OCSController { * @param ISession $ISession - Session * @param ITagManager $tagManager - Tag manager * @param ILockManager $lockManager - Lock manager + * @param TimezoneService $timezoneService - Timezone service */ public function __construct( $AppName, @@ -190,7 +199,8 @@ public function __construct( IManager $shareManager, ISession $session, ITagManager $tagManager, - ILockManager $lockManager + ILockManager $lockManager, + TimezoneService $timezoneService ) { parent::__construct($AppName, $request); @@ -204,6 +214,7 @@ public function __construct( $this->crypt = $crypt; $this->tagManager = $tagManager; $this->lockManager = $lockManager; + $this->timezoneService = $timezoneService; if ($this->config->getAdvanced() && \OC::$server->getAppManager()->isInstalled("files_sharing")) { @@ -833,9 +844,10 @@ private function setWatermark($params, $isPublic, $userId, $file) { ); if ($watermarkTemplate !== false) { + $timezone = $this->timezoneService->getUserTimezone($userId) ?? $this->timezoneService->getDefaultTimezone(); $replacements = [ "userId" => isset($userId) ? $userId : $this->trans->t('Anonymous'), - "date" => (new \DateTime())->format("Y-m-d H:i:s"), + "date" => (new \DateTime("now", new \DateTimeZone($timezone)))->format("Y-m-d H:i:s"), "themingName" => \OC::$server->getThemingDefaults()->getName() ]; $watermarkTemplate = preg_replace_callback("/{(.+?)}/", function ($matches) use ($replacements) {