Author: Christer Edvartsen (cogo@starzinger.net)
Inheritance: implements Imbo\Model\ModelInterface
Ejemplo n.º 1
0
 /**
  * Get access rules for the specified public key
  *
  * @param EventInterface $event The current event
  */
 public function getRules(EventInterface $event)
 {
     $request = $event->getRequest();
     $publicKey = $request->getRoute()->get('publickey');
     $accessControl = $event->getAccessControl();
     $keyExists = $accessControl->publicKeyExists($publicKey);
     if (!$keyExists) {
         throw new RuntimeException('Public key not found', 404);
     }
     $accessList = $accessControl->getAccessListForPublicKey($publicKey);
     if ($request->query->has('expandGroups')) {
         foreach ($accessList as &$rule) {
             if (!isset($rule['group'])) {
                 continue;
             }
             $rule['resources'] = $accessControl->getGroup($rule['group']);
         }
     }
     $model = new AccessRulesModel();
     $model->setRules($accessList);
     $event->getResponse()->setModel($model);
 }
Ejemplo n.º 2
0
 /**
  * @covers Imbo\Model\AccessRules::getRules
  * @covers Imbo\Model\AccessRules::setRules
  * @covers Imbo\Model\AccessRules::getData
  */
 public function testSetAndGetId()
 {
     $rules = [['id' => 1, 'group' => 'group', 'users' => ['user']], ['id' => 2, 'resources' => ['image.get', 'image.head'], 'users' => ['user']]];
     $this->assertSame([], $this->model->getRules());
     $this->assertSame([], $this->model->getData());
     $this->assertSame($this->model, $this->model->setRules($rules));
     $this->assertSame($rules, $this->model->getRules());
     $this->assertSame($rules, $this->model->getData());
 }
Ejemplo n.º 3
0
Archivo: XML.php Proyecto: imbo/imbo
    /**
     * {@inheritdoc}
     */
    public function formatAccessRules(Model\AccessRules $model)
    {
        $rules = '';
        foreach ($model->getRules() as $rule) {
            $rules .= $this->formatAccessRuleArray($rule);
        }
        return <<<RULES
<?xml version="1.0" encoding="UTF-8"?>
<imbo>
  <access>{$rules}</access>
</imbo>
RULES;
    }
Ejemplo n.º 4
0
Archivo: JSON.php Proyecto: imbo/imbo
 /**
  * {@inheritdoc}
  */
 public function formatAccessRules(Model\AccessRules $model)
 {
     return $this->encode($model->getRules());
 }