fix timezone problems in timesheet forms (#555)

This commit is contained in:
Kevin Papst
2019-02-13 21:37:54 +01:00
committed by GitHub
parent 2c6f57c7ce
commit ef33233624
23 changed files with 461 additions and 61 deletions

View File

@@ -16,9 +16,6 @@ use KevinPapst\AdminLTEBundle\Model\UserModel;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
/**
* Class NavbarShowUserSubscriber
*/
class NavbarShowUserSubscriber implements EventSubscriberInterface
{
/**
@@ -27,7 +24,6 @@ class NavbarShowUserSubscriber implements EventSubscriberInterface
protected $storage;
/**
* NavbarShowUserListener constructor.
* @param TokenStorageInterface $tokenStorage
*/
public function __construct(TokenStorageInterface $tokenStorage)
@@ -64,7 +60,7 @@ class NavbarShowUserSubscriber implements EventSubscriberInterface
->setIsOnline(true)
->setTitle($myUser->getTitle())
->setAvatar($myUser->getAvatar())
->setMemberSince(new \DateTime());
->setMemberSince($myUser->getRegisteredAt());
$event->setUser($user);
}

View File

@@ -46,7 +46,7 @@ class TimezoneSubscriber implements EventSubscriberInterface
*/
public function setTimezone(GetResponseEvent $event)
{
if (null === $this->storage->getToken()) {
if (!$this->canHandleEvent()) {
return;
}
@@ -55,4 +55,24 @@ class TimezoneSubscriber implements EventSubscriberInterface
$timezone = $user->getPreferenceValue('timezone', date_default_timezone_get());
date_default_timezone_set($timezone);
}
/**
* @return bool
*/
protected function canHandleEvent(): bool
{
if (null === $this->storage->getToken()) {
return false;
}
/* @var $user User */
$user = $this->storage->getToken()->getUser();
if (null === $user) {
return false;
}
return ($user instanceof User);
}
}