document = $document; } /** * Get Description. * * Returns validator description * * @return string */ public function getDescription() { return $this->message; } /** * Is valid. * * Returns true if valid or false if not. * * @param mixed $value * * @return bool */ public function isValid($value) { if (!\is_array($value) && !empty($value)) { $this->message = 'Invalid permissions data structure'; return false; } foreach ($value as $action => $roles) { if (!\in_array($action, ['read', 'write'])) { $this->message = 'Unknown action ("'.$action.'")'; return false; } foreach ($roles as $role) { if (!\is_string($role)) { $this->message = 'Permissions role must be a string'; return false; } } } return true; } }