Move read_env_file.php to deprecated folder
This commit is contained in:
81
4dev/database/tests/20220622-01.edit_user-table-updates.sql
Normal file
81
4dev/database/tests/20220622-01.edit_user-table-updates.sql
Normal file
@@ -0,0 +1,81 @@
|
||||
--
|
||||
SELECT
|
||||
eu.cuid, eu.username,
|
||||
eu.lock_until, eu.lock_after,
|
||||
CASE WHEN (
|
||||
(eu.lock_until IS NULL
|
||||
OR (eu.lock_until IS NOT NULL AND NOW() >= eu.lock_until))
|
||||
AND (eu.lock_after IS NULL
|
||||
OR (eu.lock_after IS NOT NULL AND NOW() <= eu.lock_after))
|
||||
) THEN 0::INT ELSE 1::INT END locked_period
|
||||
FROM edit_user eu
|
||||
WHERE eu.username = 'empty';
|
||||
|
||||
UPDATE edit_user SET
|
||||
lock_until = NOW() + '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
UPDATE edit_user SET
|
||||
lock_after = NOW() - '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
|
||||
|
||||
UPDATE edit_user SET
|
||||
lock_until = NOW() - '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
UPDATE edit_user SET
|
||||
lock_after = NOW() + '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
|
||||
UPDATE edit_user SET lock_until = NULL, lock_after = NULL WHERE username = 'empty';
|
||||
|
||||
--
|
||||
SELECT
|
||||
eu.cuid, eu.username,
|
||||
eu.login_user_id, login_user_id_set_date, eu.login_user_id_last_revalidate,
|
||||
(eu.login_user_id_last_revalidate + eu.login_user_id_revalidate_after)::DATE AS reval_date, NOW()::DATE,
|
||||
eu.login_user_id_valid_from, eu.login_user_id_valid_until,
|
||||
eu.login_user_id_revalidate_after,
|
||||
CASE WHEN (
|
||||
(eu.login_user_id_valid_from IS NULL
|
||||
OR (eu.login_user_id_valid_from IS NOT NULL AND NOW() >= eu.login_user_id_valid_from))
|
||||
AND (eu.login_user_id_valid_until IS NULL
|
||||
OR (eu.login_user_id_valid_until IS NOT NULL AND NOW() <= eu.login_user_id_valid_until))
|
||||
) THEN 1::INT ELSE 0::INT END AS login_user_id_valid_date,
|
||||
CASE WHEN eu.login_user_id_revalidate_after IS NOT NULL
|
||||
AND eu.login_user_id_revalidate_after > '0 days'::INTERVAL
|
||||
AND (eu.login_user_id_last_revalidate + eu.login_user_id_revalidate_after)::DATE <= NOW()::DATE
|
||||
THEN 1::INT ELSE 0::INT END AS login_user_id_revalidate
|
||||
FROM edit_user eu
|
||||
WHERE eu.username = 'empty';
|
||||
|
||||
-- init
|
||||
UPDATE edit_user SET login_user_id = random_string(5) WHERE username = 'empty';
|
||||
|
||||
-- outside valid
|
||||
UPDATE edit_user SET
|
||||
login_user_id_valid_from = NOW() - '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
UPDATE edit_user SET
|
||||
login_user_id_valid_until = NOW() + '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
-- inside valid
|
||||
UPDATE edit_user SET
|
||||
login_user_id_valid_from = NOW() + '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
UPDATE edit_user SET
|
||||
login_user_id_valid_until = NOW() - '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
|
||||
-- revalidate must
|
||||
UPDATE edit_user SET
|
||||
login_user_id_last_revalidate = NOW() - '1 day'::interval,
|
||||
login_user_id_revalidate_after = '1 day'::interval
|
||||
WHERE username = 'empty';
|
||||
-- revalidate not yet
|
||||
UPDATE edit_user SET
|
||||
login_user_id_last_revalidate = NOW(),
|
||||
login_user_id_revalidate_after = '6 day'::interval
|
||||
WHERE username = 'empty';
|
||||
|
||||
|
||||
UPDATE edit_user SET login_user_id_set_date = NULL, login_user_id_last_revalidate = NULL, login_user_id_valid_from = NULL, login_user_id_valid_until = NULL, login_user_id_revalidate_after = NULL WHERE username = 'empty';
|
||||
95
4dev/deprecated/read_env_file.php
Normal file
95
4dev/deprecated/read_env_file.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
// config.php reads auto loader and uses CoreLibs version of this
|
||||
// DEPRECATED for here
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* parses .env file
|
||||
*
|
||||
* Rules for .env file
|
||||
* variable is any alphanumeric string followed by = on the same line
|
||||
* content starts with the first non space part
|
||||
* strings can be contained in "
|
||||
* strings MUST be contained in " if they are multiline
|
||||
* if string starts with " it will match until another " is found
|
||||
* anything AFTER " is ignored
|
||||
* if there are two variables with the same name only the first is used
|
||||
* variables are case sensitive
|
||||
*
|
||||
* @param string $path Folder to file, default is __DIR__
|
||||
* @param string $env_file What file to load, default is .env
|
||||
* @return int -1 other error
|
||||
* 0 for success full load
|
||||
* 1 for file loadable, but no data inside
|
||||
* 2 for file not readable
|
||||
* 3 for file not found
|
||||
* @deprecated V6 Use \CoreLibs\Get\DotEnv::readEnvFile()
|
||||
*/
|
||||
function readEnvFile(string $path = __DIR__, string $env_file = '.env'): int
|
||||
{
|
||||
trigger_error(
|
||||
'Method readEnvFile() is deprecated, use '
|
||||
. '\CoreLibs\Get\ReadEnvFile::readEnvFile()',
|
||||
E_USER_DEPRECATED
|
||||
);
|
||||
// default -1;
|
||||
$status = -1;
|
||||
$env_file_target = $path . DIRECTORY_SEPARATOR . $env_file;
|
||||
// this is not a file -> abort
|
||||
if (!is_file($env_file_target)) {
|
||||
$status = 3;
|
||||
return $status;
|
||||
}
|
||||
// cannot open file -> abort
|
||||
if (($fp = fopen($env_file_target, 'r')) === false) {
|
||||
$status = 2;
|
||||
return $status;
|
||||
}
|
||||
// set to readable but not yet any data loaded
|
||||
$status = 1;
|
||||
$block = false;
|
||||
$var = '';
|
||||
while ($line = fgets($fp)) {
|
||||
// main match for variable = value part
|
||||
if (preg_match("/^\s*([\w_.]+)\s*=\s*((\"?).*)/", $line, $matches)) {
|
||||
$var = $matches[1];
|
||||
$value = $matches[2];
|
||||
$quotes = $matches[3];
|
||||
// wirte only if env is not set yet, and write only the first time
|
||||
if (empty($_ENV[$var])) {
|
||||
if (!empty($quotes)) {
|
||||
// match greedy for first to last so we move any " if there are
|
||||
if (preg_match('/^"(.*[^\\\])"/U', $value, $matches)) {
|
||||
$value = $matches[1];
|
||||
} else {
|
||||
// this is a multi line
|
||||
$block = true;
|
||||
// first " in string remove
|
||||
// add removed new line back because this is a multi line
|
||||
$value = ltrim($value, '"') . PHP_EOL;
|
||||
}
|
||||
}
|
||||
// if block is set, we strip line of slashes
|
||||
$_ENV[$var] = $block === true ? stripslashes($value) : $value;
|
||||
// set successful load
|
||||
$status = 0;
|
||||
}
|
||||
} elseif ($block === true) {
|
||||
// read line until there is a unescaped "
|
||||
// this also strips everything after the last "
|
||||
if (preg_match("/(.*[^\\\])\"/", $line, $matches)) {
|
||||
$block = false;
|
||||
// strip ending " and EVERYTHING that follows after that
|
||||
$line = $matches[1];
|
||||
}
|
||||
// strip line of slashes
|
||||
$_ENV[$var] .= stripslashes($line);
|
||||
}
|
||||
}
|
||||
fclose($fp);
|
||||
return $status;
|
||||
}
|
||||
|
||||
// __END__
|
||||
Reference in New Issue
Block a user