-
Notifications
You must be signed in to change notification settings - Fork 759
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
some code for proxy feature, work in progress
- Loading branch information
1 parent
79e657a
commit 8762e8b
Showing
13 changed files
with
497 additions
and
0 deletions.
There are no files selected for viewing
94 changes: 94 additions & 0 deletions
94
src/opnsense/mvc/app/controllers/OPNsense/Proxy/Api/ServiceController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| <?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. | ||
| * | ||
| */ | ||
| namespace OPNsense\Proxy\Api; | ||
|
|
||
| use \OPNsense\Base\ApiControllerBase; | ||
| use \OPNsense\Core\Backend; | ||
|
|
||
| /** | ||
| * Class ServiceController | ||
| * @package OPNsense\Proxy | ||
| */ | ||
| class ServiceController extends ApiControllerBase | ||
| { | ||
| /** | ||
| * start proxy service | ||
| * @return array | ||
| */ | ||
| public function startAction() | ||
| { | ||
| $backend = new Backend(); | ||
| $response = $backend->sendEvent("service start proxy"); | ||
| return array("response" => $response); | ||
| } | ||
|
|
||
| /** | ||
| * stop proxy service | ||
| * @return array | ||
| */ | ||
| public function stopAction() | ||
| { | ||
| $backend = new Backend(); | ||
| $response = $backend->sendEvent("service stop proxy"); | ||
| return array("response" => $response); | ||
| } | ||
|
|
||
| /** | ||
| * restart proxy service | ||
| * @return array | ||
| */ | ||
| public function restartAction() | ||
| { | ||
| $backend = new Backend(); | ||
| $response = $backend->sendEvent("service restart proxy"); | ||
| return array("response" => $response); | ||
| } | ||
|
|
||
| /** | ||
| * retrieve status of squid proxy | ||
| * @return array | ||
| * @throws \Exception | ||
| */ | ||
| public function statusAction() | ||
| { | ||
| $backend = new Backend(); | ||
| $response = $backend->sendEvent("service status proxy"); | ||
|
|
||
| if (strpos($response, "not running") > 0) { | ||
| $status = "stopped"; | ||
| } elseif (strpos($response, "not running") > 0) { | ||
| $status = "running"; | ||
| } else { | ||
| $status = "unkown"; | ||
| } | ||
|
|
||
|
|
||
| return array("status" => $status); | ||
| } | ||
| } |
41 changes: 41 additions & 0 deletions
41
src/opnsense/mvc/app/controllers/OPNsense/Proxy/IndexController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| <?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. | ||
| * | ||
| */ | ||
| namespace OPNsense\Proxy; | ||
|
|
||
| /** | ||
| * Class IndexController | ||
| * @package OPNsense\Proxy | ||
| */ | ||
| class IndexController extends \OPNsense\Base\IndexController | ||
| { | ||
| public function indexAction() | ||
| { | ||
| $this->view->pick('OPNsense/Proxy/index'); | ||
| } | ||
| } |
65 changes: 65 additions & 0 deletions
65
src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BooleanField.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| <?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. | ||
| * | ||
| */ | ||
| namespace OPNsense\Base\FieldTypes; | ||
|
|
||
| use Phalcon\Validation\Validator\Regex; | ||
|
|
||
| /** | ||
| * Class TextField | ||
| * @package OPNsense\Base\FieldTypes | ||
| */ | ||
| class BooleanField extends BaseField | ||
| { | ||
| /** | ||
| * @var bool marks if this is a data node or a container | ||
| */ | ||
| protected $internalIsContainer = false; | ||
|
|
||
|
|
||
| /** | ||
| * @return array returns Text/regex validator | ||
| */ | ||
| public function getValidators() | ||
| { | ||
| // regexp for validating boolean values. | ||
| $regex_mask = "/^([0,1]){1}$/"; | ||
|
|
||
| if ($this->internalValidationMessage == null) { | ||
| $msg = "value should be a boolean (0,1)" ; | ||
| } else { | ||
| $msg = $this->internalValidationMessage; | ||
| } | ||
| if ($this->internalIsRequired == true || $this->internalValue != null) { | ||
| return array(new Regex(array('message' => $msg,'pattern'=>trim($regex_mask)))); | ||
| } else { | ||
| // empty field and not required, skip this validation. | ||
| return array(); | ||
| } | ||
| } | ||
| } |
104 changes: 104 additions & 0 deletions
104
src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/IntegerField.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| <?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. | ||
| * | ||
| */ | ||
| namespace OPNsense\Base\FieldTypes; | ||
|
|
||
| use OPNsense\Base\Validators\MinMaxValidator; | ||
| use OPNsense\Base\Validators\IntegerValidator; | ||
|
|
||
| /** | ||
| * Class TextField | ||
| * @package OPNsense\Base\FieldTypes | ||
| */ | ||
| class IntegerField extends BaseField | ||
| { | ||
| /** | ||
| * @var bool marks if this is a data node or a container | ||
| */ | ||
| protected $internalIsContainer = false; | ||
|
|
||
| /** | ||
| * maximum value for this field | ||
| * @var integer | ||
| */ | ||
| private $maximum_value = PHP_INT_MAX ; | ||
|
|
||
| /** | ||
| * minimum value for this field | ||
| * @var integer | ||
| */ | ||
| private $minimum_value = PHP_INT_MAX*-1 ; | ||
|
|
||
|
|
||
| /** | ||
| * setter for maximum value | ||
| * @param integer $value | ||
| */ | ||
| public function setMaximumValue($value) | ||
| { | ||
| if (is_numeric($value)) { | ||
| $this->maximum_value = $value; | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * setter for minimum value | ||
| * @param integer $value | ||
| */ | ||
| public function setMinimumValue($value) | ||
| { | ||
| if (is_numeric($value)) { | ||
| $this->minimum_value = $value; | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * @return array returns Text/regex validator | ||
| */ | ||
| public function getValidators() | ||
| { | ||
| if ($this->internalValidationMessage == null) { | ||
| $msg = "invalid integer value" ; | ||
| } else { | ||
| $msg = $this->internalValidationMessage; | ||
| } | ||
|
|
||
| if (($this->internalIsRequired == true || $this->internalValue != null)) { | ||
| $result = array(); | ||
| $result[] = new MinMaxValidator(array('message' => $msg, | ||
| "min" => $this->minimum_value, | ||
| "max" => $this->maximum_value | ||
| )); | ||
| $result[] = new IntegerValidator(array('message' => $msg)); | ||
| return $result; | ||
| } else { | ||
| // empty field and not required, skip this validation. | ||
| return array(); | ||
| } | ||
| } | ||
| } |
50 changes: 50 additions & 0 deletions
50
src/opnsense/mvc/app/models/OPNsense/Base/Validators/IntegerValidator.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| <?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. | ||
| * | ||
| */ | ||
| namespace OPNsense\Base\Validators; | ||
|
|
||
| use \Phalcon\Validation\Validator; | ||
| use \Phalcon\Validation\ValidatorInterface; | ||
| use \Phalcon\Validation\Message;; | ||
|
|
||
| class IntegerValidator extends Validator implements ValidatorInterface | ||
| { | ||
|
|
||
| public function validate($validator, $attribute) | ||
| { | ||
| $value = $validator->getValue($attribute); | ||
| $msg = $this->getOption('message'); | ||
|
|
||
|
|
||
| if (ctype_digit(strval(($value))) == false) { | ||
| $validator->appendMessage(new Message($msg, $attribute, 'IntegerValidator')); | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| } |
Oops, something went wrong.