firmware: allow `configctl firmware (un)lock'

Prevented throught the API action, but useful for an upcoming setting,
it locks the base + kernel.
This commit is contained in:
Franco Fichtner 2017-10-09 06:15:50 +00:00
parent f6dec7ea3b
commit 996d2bf363
3 changed files with 30 additions and 14 deletions

View File

@ -439,15 +439,18 @@ class FirmwareController extends ApiControllerBase
$response = array();
if ($this->request->isPost()) {
$response['status'] = 'ok';
// sanitize package name
$filter = new \Phalcon\Filter();
$filter->add('pkgname', function ($value) {
return preg_replace('/[^0-9a-zA-Z-_]/', '', $value);
});
$pkg_name = $filter->sanitize($pkg_name, "pkgname");
// execute action
} else {
$pkg_name = null;
}
if (!empty($pkg_name)) {
$response['msg_uuid'] = trim($backend->configdpRun("firmware lock", array($pkg_name), true));
$response['status'] = 'ok';
} else {
$response['status'] = 'failure';
}
@ -467,15 +470,18 @@ class FirmwareController extends ApiControllerBase
$response = array();
if ($this->request->isPost()) {
$response['status'] = 'ok';
// sanitize package name
$filter = new \Phalcon\Filter();
$filter->add('pkgname', function ($value) {
return preg_replace('/[^0-9a-zA-Z-_]/', '', $value);
});
$pkg_name = $filter->sanitize($pkg_name, "pkgname");
// execute action
} else {
$pkg_name = null;
}
if (!empty($pkg_name)) {
$response['msg_uuid'] = trim($backend->configdpRun("firmware unlock", array($pkg_name), true));
$response['status'] = 'ok';
} else {
$response['status'] = 'failure';
}

View File

@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2015-2016 Franco Fichtner <franco@opnsense.org>
# Copyright (C) 2015-2017 Franco Fichtner <franco@opnsense.org>
# Copyright (C) 2014 Deciso B.V.
# All rights reserved.
#
@ -26,11 +26,16 @@
# POSSIBILITY OF SUCH DAMAGE.
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
PACKAGE=$1
PACKAGE=${1}
if [ -z "${PACKAGE}" ]; then
opnsense-update -L
exit 0
fi
# Truncate upgrade progress file
: > ${PKG_PROGRESS_FILE}
echo "***GOT REQUEST TO LOCK: $PACKAGE***" >> ${PKG_PROGRESS_FILE}
pkg lock -y $PACKAGE >> ${PKG_PROGRESS_FILE} 2>&1
echo "***GOT REQUEST TO LOCK: ${PACKAGE}***" >> ${PKG_PROGRESS_FILE}
pkg lock -y ${PACKAGE} >> ${PKG_PROGRESS_FILE} 2>&1
echo '***DONE***' >> ${PKG_PROGRESS_FILE}

View File

@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2015-2016 Franco Fichtner <franco@opnsense.org>
# Copyright (C) 2015-2017 Franco Fichtner <franco@opnsense.org>
# Copyright (C) 2014 Deciso B.V.
# All rights reserved.
#
@ -26,11 +26,16 @@
# POSSIBILITY OF SUCH DAMAGE.
PKG_PROGRESS_FILE=/tmp/pkg_upgrade.progress
PACKAGE=$1
PACKAGE=${1}
if [ -z "${PACKAGE}" ]; then
opnsense-update -U
exit 0
fi
# Truncate upgrade progress file
: > ${PKG_PROGRESS_FILE}
echo "***GOT REQUEST TO UNLOCK: $PACKAGE***" >> ${PKG_PROGRESS_FILE}
pkg unlock -y $PACKAGE >> ${PKG_PROGRESS_FILE} 2>&1
echo "***GOT REQUEST TO UNLOCK: ${PACKAGE}***" >> ${PKG_PROGRESS_FILE}
pkg unlock -y ${PACKAGE} >> ${PKG_PROGRESS_FILE} 2>&1
echo '***DONE***' >> ${PKG_PROGRESS_FILE}