Merge branch 'ZoneMinder:master' into master

This commit is contained in:
Jonathan Bennett 2022-01-22 12:20:13 -06:00 committed by GitHub
commit 8125aa633b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 38 additions and 5 deletions

View File

@ -39,6 +39,7 @@ CREATE TABLE `Config` (
`Help` text, `Help` text,
`Category` varchar(32) NOT NULL default '', `Category` varchar(32) NOT NULL default '',
`Readonly` tinyint(3) unsigned NOT NULL default '0', `Readonly` tinyint(3) unsigned NOT NULL default '0',
`Private` BOOLEAN NOT NULL DEFAULT FALSE,
`Requires` text, `Requires` text,
PRIMARY KEY (`Name`) PRIMARY KEY (`Name`)
) ENGINE=@ZM_MYSQL_ENGINE@; ) ENGINE=@ZM_MYSQL_ENGINE@;

20
db/zm_update-1.37.10.sql Normal file
View File

@ -0,0 +1,20 @@
--
-- Update Config table to have Private
--
SELECT 'Checking for Private in Config';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Config'
AND table_schema = DATABASE()
AND column_name = 'Private'
) > 0,
"SELECT 'Column Private already exists in Config'",
"ALTER TABLE `Config` ADD COLUMN `Private` BOOLEAN NOT NULL DEFAULT FALSE AFTER `Readonly`"
));
PREPARE stmt FROM @s;
EXECUTE stmt;

View File

@ -36,7 +36,7 @@
%global _hardened_build 1 %global _hardened_build 1
Name: zoneminder Name: zoneminder
Version: 1.37.9 Version: 1.37.10
Release: 1%{?dist} Release: 1%{?dist}
Summary: A camera monitoring and analysis tool Summary: A camera monitoring and analysis tool
Group: System Environment/Daemons Group: System Environment/Daemons

View File

@ -156,7 +156,7 @@ sub loadConfigFromDB {
print("Error: unable to load options from database: $DBI::errstr\n"); print("Error: unable to load options from database: $DBI::errstr\n");
return(0); return(0);
} }
my $sql = "select * from Config"; my $sql = 'SELECT * FROM Config';
my $sth = $dbh->prepare_cached( $sql ) my $sth = $dbh->prepare_cached( $sql )
or croak( "Can't prepare '$sql': ".$dbh->errstr() ); or croak( "Can't prepare '$sql': ".$dbh->errstr() );
my $res = $sth->execute() my $res = $sth->execute()
@ -203,7 +203,7 @@ sub saveConfigToDB {
my $res = $dbh->do( $sql ) my $res = $dbh->do( $sql )
or croak( "Can't do '$sql': ".$dbh->errstr() ); or croak( "Can't do '$sql': ".$dbh->errstr() );
$sql = "replace into Config set Id = ?, Name = ?, Value = ?, Type = ?, DefaultValue = ?, Hint = ?, Pattern = ?, Format = ?, Prompt = ?, Help = ?, Category = ?, Readonly = ?, Requires = ?"; $sql = "replace into Config set Id = ?, Name = ?, Value = ?, Type = ?, DefaultValue = ?, Hint = ?, Pattern = ?, Format = ?, Prompt = ?, Help = ?, Category = ?, Readonly = ?, Private = ?, Requires = ?";
my $sth = $dbh->prepare_cached( $sql ) my $sth = $dbh->prepare_cached( $sql )
or croak( "Can't prepare '$sql': ".$dbh->errstr() ); or croak( "Can't prepare '$sql': ".$dbh->errstr() );
foreach my $option ( @options ) { foreach my $option ( @options ) {
@ -240,6 +240,7 @@ sub saveConfigToDB {
$option->{help}, $option->{help},
$option->{category}, $option->{category},
$option->{readonly} ? 1 : 0, $option->{readonly} ? 1 : 0,
$option->{private} ? 1 : 0,
$option->{db_requires} $option->{db_requires}
) or croak("Can't execute when updating config entry $$option{name}: ".$sth->errstr() ); ) or croak("Can't execute when updating config entry $$option{name}: ".$sth->errstr() );
} # end foreach option } # end foreach option

View File

@ -304,6 +304,7 @@ our @options = (
{ name=>'ZM_AUTH_RELAY', value=>'hashed' } { name=>'ZM_AUTH_RELAY', value=>'hashed' }
], ],
type => $types{string}, type => $types{string},
private => 1,
category => 'system', category => 'system',
}, },
{ {
@ -484,6 +485,7 @@ our @options = (
{name=>'ZM_OPT_USE_GOOG_RECAPTCHA', value=>'yes'} {name=>'ZM_OPT_USE_GOOG_RECAPTCHA', value=>'yes'}
], ],
type => $types{string}, type => $types{string},
private => 1,
category => 'system', category => 'system',
}, },
{ {
@ -499,6 +501,7 @@ our @options = (
{name=>'ZM_OPT_USE_GOOG_RECAPTCHA', value=>'yes'} {name=>'ZM_OPT_USE_GOOG_RECAPTCHA', value=>'yes'}
], ],
type => $types{string}, type => $types{string},
private => 1,
category => 'system', category => 'system',
}, },
{ {

View File

@ -1 +1 @@
1.37.9 1.37.10

View File

@ -165,7 +165,7 @@ function loadConfig( $defineConsts=true ) {
$config = array(); $config = array();
$result = $dbConn->query('SELECT Name,Value FROM Config'); $result = $dbConn->query('SELECT Name,Value,Private FROM Config');
if ( !$result ) if ( !$result )
echo mysql_error(); echo mysql_error();
while( $row = dbFetchNext($result) ) { while( $row = dbFetchNext($result) ) {

View File

@ -105,3 +105,11 @@ stateStrings[STATE_PREALARM] = "<?php echo translate('Prealarm') ?>";
stateStrings[STATE_ALARM] = "<?php echo translate('Alarm') ?>"; stateStrings[STATE_ALARM] = "<?php echo translate('Alarm') ?>";
stateStrings[STATE_ALERT] = "<?php echo translate('Alert') ?>"; stateStrings[STATE_ALERT] = "<?php echo translate('Alert') ?>";
stateStrings[STATE_TAPE] = "<?php echo translate('Record') ?>"; stateStrings[STATE_TAPE] = "<?php echo translate('Record') ?>";
<?php
global $config;
foreach ($config as $name=>$c) {
if (!$c['Private'])
echo 'const '. $name . ' = \''.$c['Value'].'\''.PHP_EOL;
}
?>