<?php
/**
* This file is part of the Knitink Project package.
*
* Created by Globunet Soluciones Tecnologicas, SL. on 13/01/17. <info@globunet.com>
* Copyright (c) 2016 Knitink Technologies, SL. All rights reserved.
*/
namespace Knitink\UniverseBundle\Security;
use Knitink\UniverseBundle\Entity\Valve;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
use Symfony\Component\HttpFoundation\Session\Session;
use Globunet\DinamicDatabaseBundle\Services\DatabaseConnector;
class ValveVoter extends Voter
{
private $databaseConnector;
private $session;
public function __construct(DatabaseConnector $databaseConnector, Session $session)
{
$this->databaseConnector = $databaseConnector;
$this->session = $session;
}
protected function supports($attribute, $subject)
{
return $subject instanceof Valve && $attribute === 'VOTER_KNITINK_UNIVERSE_VALVE';
}
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
$user = $token->getUser();
if(($user instanceof \Symfony\Component\Security\Core\User\User || $user instanceof \Knitink\CoreBundle\Entity\User) && in_array("ROLE_SUPER_ADMIN", $user->getRoles())){
return true;
}
if (!$user instanceof \Knitink\CoreBundle\Entity\User) {
return false;
}
return $this->checker($user, $attribute, $subject);
}
public function checker($user, $attribute, $subject, $em = null)
{
return true;
}
}