added team permissions on user queries (#1815)
This commit is contained in:
@@ -14,6 +14,7 @@ use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
||||
|
||||
class UserEnvironmentSubscriber implements EventSubscriberInterface
|
||||
{
|
||||
@@ -21,21 +22,30 @@ class UserEnvironmentSubscriber implements EventSubscriberInterface
|
||||
* @var TokenStorageInterface
|
||||
*/
|
||||
private $storage;
|
||||
/**
|
||||
* @var AuthorizationCheckerInterface
|
||||
*/
|
||||
private $auth;
|
||||
|
||||
public function __construct(TokenStorageInterface $tokenStorage)
|
||||
public function __construct(TokenStorageInterface $tokenStorage, AuthorizationCheckerInterface $auth)
|
||||
{
|
||||
$this->storage = $tokenStorage;
|
||||
$this->auth = $auth;
|
||||
}
|
||||
|
||||
public static function getSubscribedEvents(): array
|
||||
{
|
||||
return [
|
||||
KernelEvents::REQUEST => ['prepareEnvironment', 100],
|
||||
KernelEvents::REQUEST => ['prepareEnvironment', -100],
|
||||
];
|
||||
}
|
||||
|
||||
public function prepareEnvironment(RequestEvent $event)
|
||||
{
|
||||
if (!$event->isMasterRequest()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (null === $this->storage->getToken()) {
|
||||
return;
|
||||
}
|
||||
@@ -45,6 +55,7 @@ class UserEnvironmentSubscriber implements EventSubscriberInterface
|
||||
if ($user instanceof User) {
|
||||
date_default_timezone_set($user->getTimezone());
|
||||
\Locale::setDefault($user->getLocale());
|
||||
$user->initCanSeeAllData($this->auth->isGranted('view_all_data'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user