diff --git a/src/Domain/Folders/Models/Folder.php b/src/Domain/Folders/Models/Folder.php index 082b482c..6072afd2 100644 --- a/src/Domain/Folders/Models/Folder.php +++ b/src/Domain/Folders/Models/Folder.php @@ -121,8 +121,7 @@ class Folder extends Model public function getCreatedAtAttribute(): string { return format_date( - set_time_by_user_timezone($this->attributes['created_at']), - __t('time') + set_time_by_user_timezone($this->attributes['created_at']), __t('time') ); } @@ -136,8 +135,7 @@ class Folder extends Model } return format_date( - set_time_by_user_timezone($this->attributes['deleted_at']), - __t('time') + set_time_by_user_timezone($this->attributes['deleted_at']), __t('time') ); } diff --git a/src/Domain/Settings/Models/Setting.php b/src/Domain/Settings/Models/Setting.php index 46440a69..60e64c0b 100644 --- a/src/Domain/Settings/Models/Setting.php +++ b/src/Domain/Settings/Models/Setting.php @@ -14,6 +14,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; * @method static find(array|string $setting) * @property string value * @property string name + * @property mixed timezone */ class Setting extends Model { diff --git a/src/Support/helpers.php b/src/Support/helpers.php index 73ff1bee..8aca1837 100644 --- a/src/Support/helpers.php +++ b/src/Support/helpers.php @@ -926,21 +926,18 @@ if (! function_exists('get_files_for_zip')) { if (! function_exists('set_time_by_user_timezone')) { /** * Set time by user timezone GMT - * - * @param $time - * @return Carbon */ - function set_time_by_user_timezone($time) + function set_time_by_user_timezone(string $time): string|Carbon { $user = Auth::user(); if ($user) { - $time_zone = intval($user->settings->timezone * 60 ?? null); + $time_zone = $user->settings->timezone ?? 0; - return Carbon::parse($time)->addMinutes($time_zone ?? 0); + return Carbon::parse($time)->addMinutes($time_zone * 60); } - return Carbon::parse($time); + return $time; } } diff --git a/tests/App/Users/UserAccountTest.php b/tests/App/Users/UserAccountTest.php index 6e018bfa..c3cb886d 100644 --- a/tests/App/Users/UserAccountTest.php +++ b/tests/App/Users/UserAccountTest.php @@ -1,6 +1,7 @@ assertExists('files/' . User::first()->id); } + /** + * @test + */ + public function it_test_user_timezone() + { + $user = User::factory(User::class) + ->create(['role' => 'user']); + + Folder::factory(Folder::class) + ->create([ + 'user_id' => $user->id, + 'created_at' => now(), + ]); + + $user->settings()->update([ + 'timezone' => '2.0' + ]); + + $this + ->actingAs($user) + ->getJson("/api/browse/folders/undefined") + ->assertJsonFragment([ + 'created_at' => '01. January. 2021 at 02:00', + ]); + } /** * @test