Update edit_user form page and also minor updates to Form and ArraIO
login_user_id is unique if not null (as index, constraint only with PostgreSQL 15) login_user_id_revalidate_after is not longer not null and default set, no need for this DB\Extended\ArrayIO: add sql_read for datetime fields to change amount of data (eg only up to minute) with to_char() method. sample: YYYY-MM-DD HH24:MI Add date/datetime/emptynull for setting empty fields to null and not empty string Output\From\Generate: Remove all fill for spacer and change them to placeholder html types. Add datetime check next to date, time only checks edit_user Admin Form: add all new columns there
This commit is contained in:
@@ -75,9 +75,9 @@ class Login
|
||||
/** @var string the user id var*/
|
||||
private $euid;
|
||||
/** @var string _GET/_POST loginUserId parameter for non password login */
|
||||
private $login_user_id;
|
||||
private $login_user_id = '';
|
||||
/** @var string source, either _GET or _POST or empty */
|
||||
private $login_user_id_source;
|
||||
private $login_user_id_source = '';
|
||||
/** @var bool set to true if illegal characters where found in the login user id string */
|
||||
private $login_unclear = false;
|
||||
// is set to one if login okay, or EUID is set and user is okay to access this page
|
||||
@@ -548,7 +548,8 @@ class Login
|
||||
. "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, "
|
||||
// check if user must login
|
||||
. "CASE WHEN eu.login_user_id_revalidate_after > '0 days'::INTERVAL "
|
||||
. "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_set_date + eu.login_user_id_revalidate_after)::DATE "
|
||||
. "<= NOW()::DATE "
|
||||
. "THEN 1::INT ELSE 0::INT END AS login_user_id_revalidate, "
|
||||
@@ -1888,7 +1889,8 @@ EOM;
|
||||
. "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, "
|
||||
// check if user must login
|
||||
. "CASE WHEN eu.login_user_id_revalidate_after > '0 days'::INTERVAL "
|
||||
. "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_set_date + eu.login_user_id_revalidate_after <= NOW()::DATE "
|
||||
. "THEN 1::INT ELSE 0::INT END AS login_user_id_revalidate, "
|
||||
. "eu.login_user_id_locked "
|
||||
|
||||
@@ -271,7 +271,15 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
if ($q_select) {
|
||||
$q_select .= ', ';
|
||||
}
|
||||
$q_select .= $column;
|
||||
if (
|
||||
!empty($data_array['type']) && $data_array['type'] == 'datetime' &&
|
||||
!empty($data_array['sql_read'])
|
||||
) {
|
||||
// convert tom different timestamp type
|
||||
$q_select .= "TO_CHAR($column, '" . $data_array['sql_read'] . "') AS $column";
|
||||
} else {
|
||||
$q_select .= $column;
|
||||
}
|
||||
|
||||
// check FK ...
|
||||
if (isset($this->table_array[$column]['fk']) && isset($this->table_array[$column]['value'])) {
|
||||
@@ -450,7 +458,12 @@ class ArrayIO extends \CoreLibs\DB\IO
|
||||
} elseif (isset($this->table_array[$column]['bool'])) {
|
||||
// boolean storeage (reverse check on ifset)
|
||||
$q_data .= "'" . $this->dbBoolean($this->table_array[$column]['value'], true) . "'";
|
||||
} elseif (isset($this->table_array[$column]['interval'])) {
|
||||
} elseif (
|
||||
isset($this->table_array[$column]['interval']) ||
|
||||
isset($this->table_array[$column]['date']) ||
|
||||
isset($this->table_array[$column]['datetime']) ||
|
||||
isset($this->table_array[$column]['emptynull'])
|
||||
) {
|
||||
// for interval we check if no value, then we set null
|
||||
if (
|
||||
!isset($this->table_array[$column]['value']) ||
|
||||
|
||||
@@ -969,11 +969,13 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
}
|
||||
// date (YYYY-MM-DD)
|
||||
if ($this->table_array[$element_name]['type'] == 'date') {
|
||||
if (!$this->table_array[$element_name]['value']) {
|
||||
$this->table_array[$element_name]['value'] = 'YYYY-MM-DD';
|
||||
}
|
||||
$data['name'] = $element_name;
|
||||
$data['value'] = $this->table_array[$element_name]['value'];
|
||||
$data['value'] = $this->table_array[$element_name]['value'] ?? '';
|
||||
}
|
||||
// date time (no sec) (YYYY-MM-DD HH:mm)
|
||||
if ($this->table_array[$element_name]['type'] == 'datetime') {
|
||||
$data['name'] = $element_name;
|
||||
$data['value'] = $this->table_array[$element_name]['value'] ?? '';
|
||||
}
|
||||
// textarea
|
||||
if ($this->table_array[$element_name]['type'] == 'textarea') {
|
||||
@@ -1168,7 +1170,7 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
if (!\CoreLibs\Combined\DateTime::checkDate($this->table_array[$key]['value'])) {
|
||||
$this->msg .= sprintf(
|
||||
$this->l->__(
|
||||
'Please enter a vailid date (YYYY-MM-DD) for the <b>%s</b> Field!<br>'
|
||||
'Please enter a valid date (YYYY-MM-DD) for the <b>%s</b> Field!<br>'
|
||||
),
|
||||
$this->table_array[$key]['output_name']
|
||||
);
|
||||
@@ -1178,14 +1180,22 @@ class Generate extends \CoreLibs\DB\Extended\ArrayIO
|
||||
if (!\CoreLibs\Combined\DateTime::checkDateTime($this->table_array[$key]['value'])) {
|
||||
$this->msg .= sprintf(
|
||||
$this->l->__(
|
||||
'Please enter a vailid time (HH:MM[:SS]) for the <b>%s</b> Field!<br>'
|
||||
'Please enter a valid time (HH:mm[:SS]) for the <b>%s</b> Field!<br>'
|
||||
),
|
||||
$this->table_array[$key]['output_name']
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 'datetime': // YYYY-MM-DD HH:MM[:SS]
|
||||
// not implemented
|
||||
if (!\CoreLibs\Combined\DateTime::checkDateTime($this->table_array[$key]['value'])) {
|
||||
$this->msg .= sprintf(
|
||||
$this->l->__(
|
||||
'Please enter a valid date time (YYYY-MM-DD HH:mm) '
|
||||
. 'for the <b>%s</b> Field!<br>'
|
||||
),
|
||||
$this->table_array[$key]['output_name']
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 'intervalshort': // ony interval n [Y/M/D] only
|
||||
if (preg_match("/^\d{1,3}\ ?[YMDymd]{1}$/", $this->table_array[$key]['value'])) {
|
||||
|
||||
Reference in New Issue
Block a user