public function testAddAndRemove() { $builder = new MaskBuilder(); $builder ->add('view') ->add('eDiT') ->add('ownEr') ; $mask = $builder->get(); $this->assertEquals(MaskBuilder::MASK_VIEW, $mask & MaskBuilder::MASK_VIEW); $this->assertEquals(MaskBuilder::MASK_EDIT, $mask & MaskBuilder::MASK_EDIT); $this->assertEquals(MaskBuilder::MASK_OWNER, $mask & MaskBuilder::MASK_OWNER); $this->assertEquals(0, $mask & MaskBuilder::MASK_MASTER); $this->assertEquals(0, $mask & MaskBuilder::MASK_CREATE); $this->assertEquals(0, $mask & MaskBuilder::MASK_DELETE); $this->assertEquals(0, $mask & MaskBuilder::MASK_UNDELETE); $builder->remove('edit')->remove('OWner'); $mask = $builder->get(); $this->assertEquals(0, $mask & MaskBuilder::MASK_EDIT); $this->assertEquals(0, $mask & MaskBuilder::MASK_OWNER); $this->assertEquals(MaskBuilder::MASK_VIEW, $mask & MaskBuilder::MASK_VIEW); }
protected function setRights($entity, $record) { $maskBuilder = new MaskBuilder(); if ($this->hasKey('viewRight', $record)) { $entity->setViewRight(true); $maskBuilder->add(MaskBuilder::MASK_VIEW); } else { $entity->setViewRight(false); $maskBuilder->remove(MaskBuilder::MASK_VIEW); } if ($this->hasKey('editRight', $record)) { $entity->setViewRight(true); $entity->setEditRight(true); $maskBuilder->add(MaskBuilder::MASK_VIEW); $maskBuilder->add(MaskBuilder::MASK_EDIT); } else { $entity->setEditRight(false); $maskBuilder->remove(MaskBuilder::MASK_EDIT); } if ($this->hasKey('masterRight', $record)) { $entity->setViewRight(true); $entity->setEditRight(true); $entity->setMasterRight(true); $maskBuilder->add(MaskBuilder::MASK_VIEW); $maskBuilder->add(MaskBuilder::MASK_EDIT); $maskBuilder->add(MaskBuilder::MASK_MASTER); } else { $entity->setMasterRight(false); $maskBuilder->remove(MaskBuilder::MASK_MASTER); } return $maskBuilder; }