Newscoop\Entity\Repository\Acl\RuleRepository::save PHP Méthode

save() public méthode

Save rule
public save ( array $values, boolean $isUser = false, Rule $rule = null ) : Rule | null
$values array
$isUser boolean
$rule Newscoop\Entity\Acl\Rule
Résultat Newscoop\Entity\Acl\Rule | null
    public function save(array $values, $isUser = false, Rule $rule = null)
    {
        $role = $this->getEntityManager()->getReference('Newscoop\\Entity\\Acl\\Role', (int) $values['role']);
        $resource = (string) $values['resource'];
        $action = (string) $values['action'];
        $type = array_key_exists('type', $values) && strtolower($values['type']) == 'allow' ? 'allow' : 'deny';
        $conflicts = $this->findBy(array('role' => (int) $values['role'], 'resource' => $resource, 'action' => $action));
        foreach ($conflicts as $conflict) {
            $this->getEntityManager()->remove($conflict);
        }
        $this->getEntityManager()->flush();
        if ('deny' == $type && !$isUser) {
            // don't add deny rules for user groups
            return;
        }
        if (null === $rule) {
            $rule = new Rule();
        }
        $rule->setType($values['type']);
        $rule->setRole($role);
        $rule->setResource($resource);
        $rule->setAction($action);
        $this->getEntityManager()->persist($rule);
        $this->getEntityManager()->flush();
        return $rule;
    }
RuleRepository