From dbdb7869c47ab8c9e3a42384401a7e29599e192f Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Thu, 19 Jan 2023 18:26:04 +0100 Subject: Safer timezone set (#5021) * Safer timezone set Add missing tzdata in Docker :newest Fallback to UTC if no timezone is defined at all #fix https://github.com/FreshRSS/FreshRSS/pull/4906#issuecomment-1386747169 * Better refactoring Show fallback timezone everywhere --- Docker/Dockerfile-Newest | 1 + app/FreshRSS.php | 5 ++++- app/Models/Context.php | 4 ++++ app/views/auth/register.phtml | 2 +- app/views/configure/display.phtml | 2 +- app/views/user/manage.phtml | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Docker/Dockerfile-Newest b/Docker/Dockerfile-Newest index d5942c77e..37783494b 100644 --- a/Docker/Dockerfile-Newest +++ b/Docker/Dockerfile-Newest @@ -4,6 +4,7 @@ ENV TZ UTC SHELL ["/bin/ash", "-eo", "pipefail", "-c"] RUN echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories && \ apk add --no-cache \ + tzdata \ apache2 php82-apache2 \ php82 php82-curl php82-gmp php82-intl php82-mbstring php82-xml php82-zip \ php82-ctype php82-dom php82-fileinfo php82-iconv php82-json php82-opcache php82-openssl php82-phar php82-session php82-simplexml php82-xmlreader php82-xmlwriter php82-xml php82-tokenizer php82-zlib \ diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 02460af69..e374fa827 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -101,7 +101,10 @@ class FreshRSS extends Minz_FrontController { Minz_Translate::init($language); $timezone = isset(FreshRSS_Context::$user_conf) ? FreshRSS_Context::$user_conf->timezone : ''; - date_default_timezone_set($timezone != '' ? $timezone : '' . ini_get('date.timezone')); + if ($timezone == '') { + $timezone = FreshRSS_Context::defaultTimeZone(); + } + date_default_timezone_set($timezone); } private static function getThemeFileUrl($theme_id, $filename) { diff --git a/app/Models/Context.php b/app/Models/Context.php index 0176e77fa..734458d7f 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -500,4 +500,8 @@ class FreshRSS_Context { return false; } + public static function defaultTimeZone(): string { + $timezone = ini_get('date.timezone'); + return $timezone != '' ? $timezone : 'UTC'; + } } diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index 66c4a1ccb..999b2406a 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -21,7 +21,7 @@ diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml index 986d7dd17..44ca242ad 100644 --- a/app/views/configure/display.phtml +++ b/app/views/configure/display.phtml @@ -37,7 +37,7 @@ ?> diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index 22a1a4d03..b996cdf2b 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -35,7 +35,7 @@ -- cgit v1.2.3