mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-20 11:26:13 +00:00
* documentation tag fixures to better support phpDocumentor
* initial model implementation using Phalcon validators and custom binding to config object Still a lot to dow here, no impact on current install base
This commit is contained in:
parent
b3fea6b917
commit
f694e05740
@ -1,40 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Controller Base
|
||||
function: implements core controller for OPNsense framework
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base;
|
||||
|
||||
use Phalcon\Mvc\Controller;
|
||||
|
||||
/**
|
||||
* Class ControllerBase implements core controller for OPNsense framework
|
||||
* @package OPNsense\Base
|
||||
*/
|
||||
class ControllerBase extends Controller
|
||||
{
|
||||
/**
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Index Controller
|
||||
function: implements base index controller, shared functionality
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base;
|
||||
|
||||
/**
|
||||
* Class IndexController
|
||||
* @package OPNsense\Base
|
||||
*/
|
||||
class IndexController extends \OPNsense\Base\ControllerBase
|
||||
{
|
||||
|
||||
|
||||
@ -1,36 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Index controller for core package
|
||||
|
||||
*/
|
||||
namespace OPNsense\Core;
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class IndexController Index controller for core package
|
||||
* @package OPNsense\Core
|
||||
*/
|
||||
class IndexController extends \OPNsense\Base\IndexController
|
||||
{
|
||||
public function indexAction()
|
||||
|
||||
@ -1,36 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Sample;
|
||||
|
||||
/**
|
||||
* Class IndexController
|
||||
* @package OPNsense\Sample
|
||||
*/
|
||||
class IndexController extends \OPNsense\Base\IndexController
|
||||
{
|
||||
public function indexAction()
|
||||
|
||||
@ -1,38 +1,40 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Sample;
|
||||
|
||||
use Phalcon\Mvc\Controller;
|
||||
use \OPNsense\Base\ControllerBase;
|
||||
|
||||
/**
|
||||
* Class PageController
|
||||
* @package OPNsense\Sample
|
||||
*/
|
||||
class PageController extends ControllerBase
|
||||
{
|
||||
public function indexAction()
|
||||
|
||||
@ -1,41 +1,47 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function: implements base model to bind config and definition to object
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace OPNsense\Base;
|
||||
|
||||
use OPNsense\Base\FieldTypes\ArrayField;
|
||||
use OPNsense\Base\FieldTypes\ContainerField;
|
||||
use OPNsense\Core\Config;
|
||||
|
||||
/**
|
||||
* Class BaseModel implements base model to bind config and definition to object.
|
||||
* Derive from this class to create usable models.
|
||||
* Every model definition should include a class (derived from this) and a xml model to define the data (model.xml)
|
||||
*
|
||||
* See the Sample model for a full implementation.
|
||||
*
|
||||
* @package OPNsense\Base
|
||||
*/
|
||||
abstract class BaseModel
|
||||
{
|
||||
/**
|
||||
@ -50,8 +56,6 @@ abstract class BaseModel
|
||||
private $internal_mountpoint = '';
|
||||
|
||||
|
||||
private $internalConfigHandle = null;
|
||||
|
||||
/**
|
||||
* If the model needs a custom initializer, override this init() method
|
||||
* Default behaviour is to do nothing in this init.
|
||||
@ -62,9 +66,10 @@ abstract class BaseModel
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $xml|SimpleXMLElement model xml data (from items section)
|
||||
* @param $config_data|SimpleXMLElement (current) config data
|
||||
* @param $internal_data output structure using FieldTypes, rootnode is internalData
|
||||
* parse model and config xml to object model using types in FieldTypes
|
||||
* @param SimpleXMLElement $xml model xml data (from items section)
|
||||
* @param SimpleXMLElement $config_data (current) config data
|
||||
* @param BaseField $internal_data output structure using FieldTypes,rootnode is internalData
|
||||
* @throws ModelException parse error
|
||||
*/
|
||||
private function parseXml($xml, &$config_data, &$internal_data)
|
||||
@ -93,7 +98,7 @@ abstract class BaseModel
|
||||
} else {
|
||||
$new_ref = $internal_data->__reference . "." . $tagName;
|
||||
}
|
||||
$fieldObject = $field_rfcls->newInstance($new_ref);
|
||||
$fieldObject = $field_rfcls->newInstance($new_ref, $tagName);
|
||||
|
||||
// now add content to this model (recursive)
|
||||
if ($fieldObject->isContainer() == false) {
|
||||
@ -126,13 +131,13 @@ abstract class BaseModel
|
||||
if ($config_section_data != null) {
|
||||
$counter = 0 ;
|
||||
foreach ($config_section_data as $conf_section) {
|
||||
$child_node = new ArrayField($fieldObject->__reference . "." . ($counter++));
|
||||
$child_node = new ContainerField($fieldObject->__reference . "." . ($counter++), $tagName);
|
||||
$this->parseXml($xmlNode, $conf_section, $child_node);
|
||||
$fieldObject->addChildNode(null, $child_node);
|
||||
}
|
||||
} else {
|
||||
$child_node = new ArrayField($fieldObject->__reference . ".0");
|
||||
$child_node->setInternalEmptyStatus(true);
|
||||
$child_node = new ContainerField($fieldObject->__reference . ".0", $tagName);
|
||||
$child_node->setInternalIsVirtual();
|
||||
$this->parseXml($xmlNode, $config_section_data, $child_node);
|
||||
$fieldObject->addChildNode(null, $child_node);
|
||||
}
|
||||
@ -154,7 +159,7 @@ abstract class BaseModel
|
||||
public function __construct()
|
||||
{
|
||||
// setup config handle to singleton config singleton
|
||||
$this->internalConfigHandle = Config::getInstance();
|
||||
$internalConfigHandle = Config::getInstance();
|
||||
|
||||
// init new root node, all details are linked to this
|
||||
$this->internalData = new FieldTypes\ContainerField();
|
||||
@ -173,10 +178,11 @@ abstract class BaseModel
|
||||
if ($model_xml->getName() != "model") {
|
||||
throw new ModelException('model xml '.$model_filename.' seems to be of wrong type') ;
|
||||
}
|
||||
$this->internal_mountpoint = $model_xml->mount;
|
||||
|
||||
// use an xpath expression to find the root of our model in the config.xml file
|
||||
// if found, convert the data to a simple structure (or create an empty array)
|
||||
$tmp_config_data = $this->internalConfigHandle->xpath($model_xml->mount);
|
||||
$tmp_config_data = $internalConfigHandle->xpath($model_xml->mount);
|
||||
if ($tmp_config_data->length > 0) {
|
||||
$config_array = simplexml_import_dom($tmp_config_data->item(0)) ;
|
||||
} else {
|
||||
@ -194,7 +200,7 @@ abstract class BaseModel
|
||||
|
||||
/**
|
||||
* reflect getter to internalData (ContainerField)
|
||||
* @param $name property name
|
||||
* @param string $name property name
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name)
|
||||
@ -204,12 +210,132 @@ abstract class BaseModel
|
||||
|
||||
/**
|
||||
* reflect setter to internalData (ContainerField)
|
||||
* @param $name property name
|
||||
* @param $value property value
|
||||
* @param string $name property name
|
||||
* @param string $value property value
|
||||
*/
|
||||
public function __set($name, $value)
|
||||
{
|
||||
$this->internalData->$name = $value ;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* validate full model using all fields and data in a single (1 deep) array
|
||||
*/
|
||||
public function performValidation()
|
||||
{
|
||||
// create a Phalcon validator and collect all model validations
|
||||
$validation = new \Phalcon\Validation();
|
||||
$validation_data = array();
|
||||
$all_nodes = $this->internalData->getFlatNodes();
|
||||
|
||||
foreach ($all_nodes as $key => $node) {
|
||||
$node_validators = $node->getValidators();
|
||||
foreach ($node_validators as $item_validator) {
|
||||
$validation->add($key, $item_validator);
|
||||
}
|
||||
if (count($node_validators) > 0) {
|
||||
$validation_data[$key] = $node->__toString();
|
||||
}
|
||||
}
|
||||
|
||||
if (count($validation_data) > 0) {
|
||||
$messages = $validation->validate($validation_data);
|
||||
} else {
|
||||
$messages = new \Phalcon\Validation\Message\Group();
|
||||
}
|
||||
|
||||
return $messages;
|
||||
}
|
||||
|
||||
/**
|
||||
* render xml document from model including all parent nodes.
|
||||
* (parent nodes are included to ease testing)
|
||||
*
|
||||
* @return \SimpleXMLElement xml representation of the model
|
||||
*/
|
||||
public function toXML()
|
||||
{
|
||||
// calculate root node from mountpoint
|
||||
$xml_root_node = "";
|
||||
$str_parts = explode("/", str_replace("//", "/", $this->internal_mountpoint));
|
||||
for ($i=0; $i < count($str_parts); $i++) {
|
||||
if ($str_parts[$i] != "") {
|
||||
$xml_root_node .= "<".$str_parts[$i].">";
|
||||
}
|
||||
}
|
||||
for ($i=count($str_parts)-1; $i >= 0; $i--) {
|
||||
if ($str_parts[$i] != "") {
|
||||
$xml_root_node .= "</".$str_parts[$i].">";
|
||||
}
|
||||
}
|
||||
|
||||
$xml = new \SimpleXMLElement($xml_root_node);
|
||||
$this->internalData->addToXMLNode($xml->xpath($this->internal_mountpoint)[0]);
|
||||
|
||||
return $xml;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* serialize model singleton to config object
|
||||
*/
|
||||
private function internalSerializeToConfig()
|
||||
{
|
||||
// setup config handle to singleton config singleton
|
||||
$internalConfigHandle = Config::getInstance();
|
||||
$config_xml = $internalConfigHandle->object();
|
||||
|
||||
// serialize this model's data to xml
|
||||
$data_xml = $this->toXML();
|
||||
|
||||
// Locate source node (in theory this must return a valid result, delivered by toXML).
|
||||
// Because toXML delivers the actual xml including the full path, we need to find the root of our data.
|
||||
$source_node = $data_xml->xpath($this->internal_mountpoint);
|
||||
|
||||
// find parent of mountpoint (create if it doesn't exists)
|
||||
$target_node = $config_xml;
|
||||
$str_parts = explode("/", str_replace("//", "/", $this->internal_mountpoint));
|
||||
for ($i=0; $i < count($str_parts)-1; $i++) {
|
||||
if ($str_parts[$i] != "") {
|
||||
if (count($target_node->xpath($str_parts[$i])) == 0) {
|
||||
$target_node = $target_node->addChild($str_parts[$i]);
|
||||
} else {
|
||||
$target_node = $target_node->xpath($str_parts[$i])[0];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// copy model data into config
|
||||
$toDom = dom_import_simplexml($target_node);
|
||||
$fromDom = dom_import_simplexml($source_node[0]);
|
||||
|
||||
// remove old model data and write new
|
||||
foreach ($toDom->getElementsByTagName($fromDom->nodeName) as $oldNode) {
|
||||
$toDom->removeChild($oldNode);
|
||||
}
|
||||
$toDom->appendChild($toDom->ownerDocument->importNode($fromDom, true));
|
||||
}
|
||||
|
||||
/**
|
||||
* validate model and serialize data to config singleton object.
|
||||
*
|
||||
* @param bool $disable_validation skip validation, be careful to use this!
|
||||
* @throws \Phalcon\Validation\Exception validation errors
|
||||
*/
|
||||
public function serializeToConfig($disable_validation = false)
|
||||
{
|
||||
if ($disable_validation == false) {
|
||||
// perform validation, collect all messages and raise exception
|
||||
$messages = $this->performValidation();
|
||||
if ($messages->count() > 0) {
|
||||
$exception_msg = "";
|
||||
foreach ($messages as $msg) {
|
||||
$exception_msg .= "[".$msg-> getField()."] ".$msg->getMessage()."\n";
|
||||
}
|
||||
throw new \Phalcon\Validation\Exception($exception_msg);
|
||||
}
|
||||
}
|
||||
$this->internalSerializeToConfig();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,72 +1,46 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function:
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base\FieldTypes;
|
||||
|
||||
/**
|
||||
* Class ArrayField
|
||||
* @package OPNsense\Base\FieldTypes
|
||||
*/
|
||||
class ArrayField extends BaseField
|
||||
{
|
||||
/**
|
||||
* @var bool is this array empty ( only filled with defaults)
|
||||
*/
|
||||
private $internalEmptyStatus = false;
|
||||
|
||||
/**
|
||||
* add Childnode (list)
|
||||
* @param $name property name
|
||||
* @param $node content (must be of type BaseField)
|
||||
* add Childnode (list), ignore the name of this item
|
||||
* @param string $name property name
|
||||
* @param BaseField $node content (must be of type BaseField)
|
||||
*/
|
||||
public function addChildNode($name, $node)
|
||||
{
|
||||
if ($name == null) {
|
||||
// index item
|
||||
$this->internalChildnodes[] = $node;
|
||||
} else {
|
||||
$this->internalChildnodes[$name] = $node;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool is empty array (only filled for template structure)
|
||||
*/
|
||||
public function isEmpty()
|
||||
{
|
||||
return $this->internalEmptyStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $status|bool set empty (status boolean)
|
||||
*/
|
||||
public function setInternalEmptyStatus($status)
|
||||
{
|
||||
$this->internalEmptyStatus = $status ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,38 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function:
|
||||
|
||||
*/
|
||||
|
||||
namespace OPNsense\Base\FieldTypes;
|
||||
|
||||
/**
|
||||
* Class BaseField
|
||||
* @package OPNsense\Base\FieldTypes
|
||||
*/
|
||||
abstract class BaseField
|
||||
{
|
||||
/**
|
||||
@ -55,11 +56,27 @@ abstract class BaseField
|
||||
*/
|
||||
protected $internalReference = "";
|
||||
|
||||
/**
|
||||
* @var string tag name for this object, either the last part of the reference.
|
||||
*/
|
||||
protected $internalXMLTagName = "";
|
||||
|
||||
/**
|
||||
* @var bool is this a required attribute?
|
||||
*/
|
||||
protected $internalIsRequired = false ;
|
||||
|
||||
/**
|
||||
* @var string validation message string
|
||||
*/
|
||||
protected $internalValidationMessage = null;
|
||||
|
||||
/**
|
||||
* @var bool node (and subnodes) is virtual
|
||||
*/
|
||||
protected $internalIsVirtual = false ;
|
||||
|
||||
|
||||
/**
|
||||
* @return bool returns if this a container type object (no data)
|
||||
*/
|
||||
@ -71,15 +88,18 @@ abstract class BaseField
|
||||
/**
|
||||
* default constructor
|
||||
* @param null|string $ref direct reference to this object
|
||||
* @param null|string $tagname xml tagname to use
|
||||
*/
|
||||
public function __construct($ref = null)
|
||||
public function __construct($ref = null, $tagname = null)
|
||||
{
|
||||
$this->internalReference = $ref;
|
||||
$this->internalXMLTagName = $tagname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name property name
|
||||
* @param $node content (must be of type BaseField)
|
||||
* Add a childnode to this node.
|
||||
* @param string $name property name
|
||||
* @param BaseField $node content (must be of type BaseField)
|
||||
*/
|
||||
public function addChildNode($name, $node)
|
||||
{
|
||||
@ -89,7 +109,7 @@ abstract class BaseField
|
||||
/**
|
||||
* Reflect default getter to internal child nodes.
|
||||
* Implements the special attribute __items to return all items and __reference to identify the field in this model.
|
||||
* @param $name property name
|
||||
* @param string $name property name
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($name)
|
||||
@ -97,7 +117,14 @@ abstract class BaseField
|
||||
if (array_key_exists($name, $this->internalChildnodes)) {
|
||||
return $this->internalChildnodes[$name];
|
||||
} elseif ($name == '__items') {
|
||||
return $this->internalChildnodes;
|
||||
// return all (no virtual/hidden) items
|
||||
$result = array();
|
||||
foreach ($this->internalChildnodes as $key => $value) {
|
||||
if ($value->internalIsVirtual == false) {
|
||||
$result[$key] = $value ;
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} elseif ($name == '__reference') {
|
||||
return $this->internalReference;
|
||||
} else {
|
||||
@ -109,8 +136,8 @@ abstract class BaseField
|
||||
|
||||
/**
|
||||
* reflect default setter to internal child nodes
|
||||
* @param $name|string property name
|
||||
* @param $value|string property value
|
||||
* @param string $name property name
|
||||
* @param string $value property value
|
||||
*/
|
||||
public function __set($name, $value)
|
||||
{
|
||||
@ -119,6 +146,9 @@ abstract class BaseField
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null|string string interpretation of this field
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->internalValue;
|
||||
@ -126,7 +156,7 @@ abstract class BaseField
|
||||
|
||||
/**
|
||||
* default setter
|
||||
* @param $value set field value
|
||||
* @param string $value set field value
|
||||
*/
|
||||
public function setValue($value)
|
||||
{
|
||||
@ -141,23 +171,6 @@ abstract class BaseField
|
||||
return $this->internalChildnodes;
|
||||
}
|
||||
|
||||
/**
|
||||
* set Default field value
|
||||
* @param $value default value
|
||||
*/
|
||||
public function setDefault($value)
|
||||
{
|
||||
$this->internalValue = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $msg validation message (on failure)
|
||||
*/
|
||||
public function setValidationMessage($msg)
|
||||
{
|
||||
$this->internalValidationMessage = $msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array returns validators for this field type (empty if none)
|
||||
*/
|
||||
@ -166,4 +179,97 @@ abstract class BaseField
|
||||
return array();
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Mark this node as virtual, only used as template for structure behind it.
|
||||
* Used for array structures.
|
||||
*/
|
||||
public function setInternalIsVirtual()
|
||||
{
|
||||
$this->internalIsVirtual = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* getter for internal tag name
|
||||
* @return null|string xml tagname to use
|
||||
*/
|
||||
public function getInternalXMLTagName()
|
||||
{
|
||||
return $this->internalXMLTagName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursive method to flatten tree structure for easy validation.
|
||||
* @return array named array with field type nodes, using the internal reference.
|
||||
*/
|
||||
public function getFlatNodes()
|
||||
{
|
||||
$result = array ();
|
||||
if (count($this->internalChildnodes) == 0) {
|
||||
return array($this);
|
||||
}
|
||||
|
||||
foreach ($this->__items as $node) {
|
||||
foreach ($node->getFlatNodes() as $childNode) {
|
||||
$result[$childNode->internalReference] = $childNode ;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add this node and it's children to the supplied simplexml node pointer.
|
||||
* @param \SimpleXMLElement $node target node
|
||||
*/
|
||||
public function addToXMLNode($node)
|
||||
{
|
||||
if ($this->internalReference == "" || get_class($this) == "OPNsense\\Base\\FieldTypes\\ArrayField") {
|
||||
// ignore tags without internal reference (root) and ArrayTypes
|
||||
$subnode = $node ;
|
||||
} else {
|
||||
if ($this->internalValue != "") {
|
||||
$subnode = $node->addChild($this->getInternalXMLTagName(), $this->internalValue);
|
||||
} else {
|
||||
$subnode = $node->addChild($this->getInternalXMLTagName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach ($this->__items as $key => $FieldNode) {
|
||||
$FieldNode->addToXMLNode($subnode);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set Default field value ( for usage in model xml )
|
||||
* @param string $value default value
|
||||
*/
|
||||
public function setDefault($value)
|
||||
{
|
||||
$this->internalValue = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* set Validation message ( for usage in model xml )
|
||||
* @param string $msg validation message (on failure)
|
||||
*/
|
||||
public function setValidationMessage($msg)
|
||||
{
|
||||
$this->internalValidationMessage = $msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements required property, the base class only implements the setter.
|
||||
* The implemented fieldtype should include the correct validation.
|
||||
* @param string $value set if this node/field is required (Y/N)
|
||||
*/
|
||||
public function setRequired($value)
|
||||
{
|
||||
if (strtoupper(trim($value)) == "Y") {
|
||||
$this->internalIsRequired = true;
|
||||
} else {
|
||||
$this->internalIsRequired = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function:
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base\FieldTypes;
|
||||
|
||||
/**
|
||||
* Class ContainerField
|
||||
* @package OPNsense\Base\FieldTypes
|
||||
*/
|
||||
class ContainerField extends BaseField
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,39 +1,40 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function: Email field type
|
||||
|
||||
*/
|
||||
namespace OPNsense\Base\FieldTypes;
|
||||
|
||||
use Phalcon\Validation\Validator\Email;
|
||||
|
||||
/**
|
||||
* Class EmailField
|
||||
* @package OPNsense\Base\FieldTypes
|
||||
*/
|
||||
class EmailField extends BaseField
|
||||
{
|
||||
/**
|
||||
@ -51,7 +52,12 @@ class EmailField extends BaseField
|
||||
} else {
|
||||
$msg = $this->internalValidationMessage;
|
||||
}
|
||||
return array(new Email(array('message' => $msg)));
|
||||
}
|
||||
if ($this->internalIsRequired == true || $this->internalValue != null) {
|
||||
return array(new Email(array('message' => $msg)));
|
||||
} else {
|
||||
// empty field and not required, skip this validation.
|
||||
return array();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function:
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base\FieldTypes;
|
||||
|
||||
/**
|
||||
* Class TextField
|
||||
* @package OPNsense\Base\FieldTypes
|
||||
*/
|
||||
class TextField extends BaseField
|
||||
{
|
||||
/**
|
||||
@ -46,10 +46,10 @@ class TextField extends BaseField
|
||||
|
||||
/**
|
||||
* set validation mask
|
||||
* @param $value regexp validation mask
|
||||
* @param string $value regexp validation mask
|
||||
*/
|
||||
public function setMask($value)
|
||||
{
|
||||
$this->internalMask = $value ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,42 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Frontend Model Base
|
||||
function: Basic Exception class for Model initialization
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Base;
|
||||
|
||||
|
||||
/**
|
||||
* Class BaseModelException
|
||||
* Class BaseModelException for Model initialization
|
||||
* @package Base
|
||||
*/
|
||||
class ModelException extends \Exception
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,39 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Captive portal
|
||||
function: provides access to the systems ARP table
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\CaptivePortal;
|
||||
|
||||
use \OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class ARP provides access to the systems ARP table
|
||||
* @package OPNsense\CaptivePortal
|
||||
*/
|
||||
class ARP
|
||||
{
|
||||
|
||||
@ -53,8 +53,8 @@ class ARP
|
||||
|
||||
/**
|
||||
* set static arp entry
|
||||
* @param $ipaddress hosts ipaddress
|
||||
* @param $mac hosts physical address
|
||||
* @param $ipaddress|string hosts ipaddress
|
||||
* @param $mac|string hosts physical address
|
||||
*/
|
||||
public function setStatic($ipaddress, $mac)
|
||||
{
|
||||
@ -68,7 +68,7 @@ class ARP
|
||||
|
||||
/**
|
||||
* drop static arp entry
|
||||
* @param $ipaddress hosts ipaddress
|
||||
* @param $ipaddress|string hosts ipaddress
|
||||
*/
|
||||
public function dropStatic($ipaddress)
|
||||
{
|
||||
|
||||
@ -1,37 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#—
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Captive portal
|
||||
function: main package for captive portal backend functionality
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\CaptivePortal;
|
||||
|
||||
use \Phalcon\Logger\Adapter\Syslog;
|
||||
@ -39,7 +33,7 @@ use \Phalcon\DI\FactoryDefault;
|
||||
use \OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class CPClient
|
||||
* Class CPClient main class for captive portal backend functionality
|
||||
* // TODO: CARP interfaces are probably not handled correctly
|
||||
* @package CaptivePortal
|
||||
*/
|
||||
@ -79,7 +73,7 @@ class CPClient
|
||||
/**
|
||||
* reset traffic counters
|
||||
*
|
||||
* @param null $rulenum
|
||||
* @param string|null $rulenum
|
||||
*/
|
||||
public function zeroCounters($rulenum = null)
|
||||
{
|
||||
@ -136,7 +130,7 @@ class CPClient
|
||||
|
||||
/**
|
||||
* update zone(s) with new configuration data
|
||||
* @param string $zone
|
||||
* @param string|null $zone
|
||||
*/
|
||||
public function update($zone = null)
|
||||
{
|
||||
@ -146,7 +140,7 @@ class CPClient
|
||||
|
||||
/**
|
||||
* refresh allowed ip's for defined zone ( null for all zones )
|
||||
* @param string $cpzone
|
||||
* @param string|null $cpzone
|
||||
*/
|
||||
public function refreshAllowedIPs($cpzone = null)
|
||||
{
|
||||
@ -256,7 +250,7 @@ class CPClient
|
||||
* To be able to grant access to physical pc's, we need to do some administration.
|
||||
* Our captive portal database keeps a list of every used address and last know mac address
|
||||
*
|
||||
* @param string $cpzone zone name or number
|
||||
* @param string|null $cpzone zone name or number
|
||||
*/
|
||||
public function refreshAllowedMACs($cpzone = null)
|
||||
{
|
||||
@ -450,14 +444,14 @@ class CPClient
|
||||
* @param string $clientip
|
||||
* @param string $clientmac
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param string $bw_up
|
||||
* @param string $bw_down
|
||||
* @param string $radiusctx
|
||||
* @param int $session_timeout
|
||||
* @param int $idle_timeout
|
||||
* @param int $session_terminate_time
|
||||
* @param int $interim_interval
|
||||
* @param string|null $password
|
||||
* @param string|null $bw_up
|
||||
* @param string|null $bw_down
|
||||
* @param string|null $radiusctx
|
||||
* @param int|null $session_timeout
|
||||
* @param int|null $idle_timeout
|
||||
* @param int|null $session_terminate_time
|
||||
* @param int|null $interim_interval
|
||||
* @return bool|string
|
||||
*/
|
||||
public function portalAllow(
|
||||
@ -601,7 +595,7 @@ class CPClient
|
||||
|
||||
/**
|
||||
* flush zone (null flushes all zones)
|
||||
* @param string $zone zone name or id
|
||||
* @param string|null $zone zone name or id
|
||||
*/
|
||||
public function flush($zone = null)
|
||||
{
|
||||
@ -638,7 +632,7 @@ class CPClient
|
||||
|
||||
/**
|
||||
* cleanup portal sessions
|
||||
* @param $cpzone zone name
|
||||
* @param $cpzone|null zone name
|
||||
*/
|
||||
public function portalCleanupSessions($cpzone = null)
|
||||
{
|
||||
@ -711,7 +705,7 @@ class CPClient
|
||||
|
||||
/**
|
||||
* list (ipfw) accounting information
|
||||
* @param string $ipaddr ip address
|
||||
* @param string|null $ipaddr ip address
|
||||
* @return array (key = hosts ip)
|
||||
*/
|
||||
public function listAccounting($ipaddr = null)
|
||||
@ -747,7 +741,7 @@ class CPClient
|
||||
/**
|
||||
* disconnect a session or a list of sessions depending on the parameter
|
||||
* @param string $cpzonename zone name or id
|
||||
* @param string $sessionid
|
||||
* @param string $sessionid session id
|
||||
*/
|
||||
public function disconnect($cpzonename, $sessionid)
|
||||
{
|
||||
|
||||
@ -1,36 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Captive portal
|
||||
function: provides access to the captiveportal internal administration ( one sqllite db per zone )
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\CaptivePortal;
|
||||
|
||||
use \Phalcon\DI\FactoryDefault;
|
||||
@ -38,7 +33,7 @@ use \Phalcon\Db\Adapter\Pdo\Sqlite;
|
||||
use \Phalcon\Logger\Adapter\Syslog;
|
||||
|
||||
/**
|
||||
* Class DB, handles captive portal zone's adminstration
|
||||
* Class DB, provides access to the captiveportal internal administration ( one sqllite db per zone )
|
||||
* @package CaptivePortal
|
||||
*/
|
||||
class DB
|
||||
|
||||
@ -1,42 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Captive portal
|
||||
function: provides ipfw handling
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\CaptivePortal;
|
||||
|
||||
use OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class Rules
|
||||
* Class Rules provides ipfw handling
|
||||
* @package CaptivePortal
|
||||
*/
|
||||
class Rules
|
||||
|
||||
@ -1,43 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Core
|
||||
function: provides access to systems config xml
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Core;
|
||||
|
||||
use \Phalcon\DI\FactoryDefault;
|
||||
|
||||
/**
|
||||
* Class Config
|
||||
* Class Config provides access to systems config xml
|
||||
* @package Core
|
||||
*/
|
||||
class Config extends Singleton
|
||||
@ -51,7 +45,7 @@ class Config extends Singleton
|
||||
|
||||
/**
|
||||
* XMLDocument type reference to config
|
||||
* @var XMLDocument
|
||||
* @var \DOMDocument
|
||||
*/
|
||||
private $configxml = null ;
|
||||
|
||||
@ -113,13 +107,13 @@ class Config extends Singleton
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* parse configuration and dump to std output (test)
|
||||
* @param DOMElement $node
|
||||
* @param string $nodename
|
||||
|
||||
/**
|
||||
* Execute a xpath expression on config.xml
|
||||
* @param $query
|
||||
* @return \DOMNodeList
|
||||
* @throws ConfigException
|
||||
*/
|
||||
|
||||
public function xpath($query)
|
||||
{
|
||||
$this->checkvalid();
|
||||
@ -127,24 +121,35 @@ class Config extends Singleton
|
||||
return $xpath->query($query);
|
||||
}
|
||||
|
||||
/*
|
||||
* init new config object, try to load current configuration
|
||||
* (executed via Singleton)
|
||||
*/
|
||||
|
||||
/**
|
||||
* object representation of xml document via simplexml, references the same underlying model
|
||||
* @return SimpleXML
|
||||
* @throws ConfigException
|
||||
*/
|
||||
public function object()
|
||||
{
|
||||
$this->checkvalid();
|
||||
return $this->simplexml;
|
||||
}
|
||||
|
||||
/*
|
||||
* Execute a xpath expression on config.xml
|
||||
* @param $query
|
||||
* @return \DOMNodeList
|
||||
/**
|
||||
* get DOMDocument
|
||||
* @return XMLDocument
|
||||
* @throws ConfigException
|
||||
*/
|
||||
public function getDOM()
|
||||
{
|
||||
$this->checkvalid();
|
||||
return $this->configxml;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* init new config object, try to load current configuration
|
||||
* (executed via Singleton)
|
||||
*/
|
||||
protected function init()
|
||||
{
|
||||
$this->config_file = FactoryDefault::getDefault()->get('config')->globals->config_path . "config.xml";
|
||||
@ -156,11 +161,6 @@ class Config extends Singleton
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* object representation of xml document via simplexml, references the same underlying model
|
||||
* @return SimpleXML
|
||||
* @throws ConfigException
|
||||
*/
|
||||
|
||||
/**
|
||||
* Load config file
|
||||
@ -177,10 +177,25 @@ class Config extends Singleton
|
||||
throw new ConfigException('empty file') ;
|
||||
}
|
||||
|
||||
$this->configxml = new \DOMDocument;
|
||||
$this->configxml = new \DOMDocument('1.0');
|
||||
$this->configxml->loadXML($xml);
|
||||
$this->simplexml = simplexml_import_dom($this->configxml);
|
||||
$this->isValid = true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed return xml text representation of this config
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
// reformat XML (pretty print)
|
||||
$dom = new \DOMDocument;
|
||||
$dom->formatOutput = true;
|
||||
$dom->preserveWhiteSpace = false;
|
||||
$dom->loadXML($this->configxml->saveXML());
|
||||
|
||||
return $dom->saveXML();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: ad
|
||||
* Date: 04-01-15
|
||||
* Time: 20:06
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace app\models\OPNsense\Core;
|
||||
namespace OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class ConfigException
|
||||
|
||||
@ -1,40 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Core
|
||||
function: shell/command handling routines
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Core;
|
||||
|
||||
use \Phalcon\DI\FactoryDefault;
|
||||
|
||||
/**
|
||||
* Class Shell shell/command handling routines
|
||||
* @package OPNsense\Core
|
||||
*/
|
||||
class Shell
|
||||
{
|
||||
|
||||
|
||||
@ -1,40 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2014 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
package : Core
|
||||
function: provides singleton pattern
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Core;
|
||||
|
||||
/**
|
||||
* Class Singleton
|
||||
* Class Singleton provides singleton pattern, be careful with usage.
|
||||
* @package Core
|
||||
*/
|
||||
abstract class Singleton
|
||||
|
||||
@ -1,43 +1,35 @@
|
||||
<?php
|
||||
/*
|
||||
# Copyright (C) 2015 Deciso B.V.
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
*/
|
||||
/**
|
||||
* Copyright (C) 2015 Deciso B.V.
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
namespace OPNsense\Sample;
|
||||
|
||||
use OPNsense\Base\BaseModel;
|
||||
|
||||
class Sample extends BaseModel
|
||||
{
|
||||
// protected function init()
|
||||
// {
|
||||
// print("\nxXx\n");
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
<model>
|
||||
<mount>//test/sample</mount>
|
||||
<description>
|
||||
Sample model
|
||||
Sample model.
|
||||
The mountpoint is a reference to the config.xml file and this part (ROOT/test/sample)
|
||||
should only be used by this model.
|
||||
By defining full sections per model we should avoid clashes and keep serializing data back.
|
||||
</description>
|
||||
<items>
|
||||
<tag1 type="TextField">
|
||||
@ -21,10 +24,12 @@
|
||||
<node1 type="TextField"/>
|
||||
<node2 type="TextField"/>
|
||||
</section>
|
||||
</childnodes>
|
||||
<childnodes1>
|
||||
<section1 type="ArrayField">
|
||||
<nodeX type="TextField"></nodeX>
|
||||
<nodeZ type="TextField"></nodeZ>
|
||||
</section1>
|
||||
</childnodes>
|
||||
</childnodes1>
|
||||
</items>
|
||||
</model>
|
||||
Loading…
x
Reference in New Issue
Block a user