Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6d3a7b7b28 | |||
| 745340a7f5 | |||
| 419c578c46 | |||
| 6beff9c6ac | |||
| 79dbd053fa | |||
| 74004e5221 | |||
| 0392187299 | |||
| edcc65df3e | |||
| 5dde52a309 | |||
| 5f223fb50d | |||
| 2eaf80b1bd | |||
| b5d601aec0 |
@@ -1 +1 @@
|
|||||||
9.2.0
|
9.3.5
|
||||||
|
|||||||
@@ -231,8 +231,6 @@ class Login
|
|||||||
) {
|
) {
|
||||||
// attach db class
|
// attach db class
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
// log login data for this class only
|
|
||||||
$log->setLogFlag(\CoreLibs\Logging\Logger\Flag::per_class);
|
|
||||||
// attach logger
|
// attach logger
|
||||||
$this->log = $log;
|
$this->log = $log;
|
||||||
// attach session class
|
// attach session class
|
||||||
@@ -1060,9 +1058,9 @@ class Login
|
|||||||
];
|
];
|
||||||
// set the default unit
|
// set the default unit
|
||||||
if ($res['edit_default']) {
|
if ($res['edit_default']) {
|
||||||
$_SESSION['UNIT_DEFAULT'] = $res['edit_access_id'];
|
$_SESSION['UNIT_DEFAULT'] = (int)$res['edit_access_id'];
|
||||||
}
|
}
|
||||||
$_SESSION['UNIT_UID'][$res['uid']] = $res['edit_access_id'];
|
$_SESSION['UNIT_UID'][$res['uid']] = (int)$res['edit_access_id'];
|
||||||
// sub arrays for simple access
|
// sub arrays for simple access
|
||||||
array_push($eauid, $res['edit_access_id']);
|
array_push($eauid, $res['edit_access_id']);
|
||||||
$unit_acl[$res['edit_access_id']] = $res['level'];
|
$unit_acl[$res['edit_access_id']] = $res['level'];
|
||||||
@@ -1148,18 +1146,18 @@ class Login
|
|||||||
// user > page > group
|
// user > page > group
|
||||||
// group ACL 0
|
// group ACL 0
|
||||||
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
||||||
$this->acl['base'] = $_SESSION['GROUP_ACL_LEVEL'];
|
$this->acl['base'] = (int)$_SESSION['GROUP_ACL_LEVEL'];
|
||||||
}
|
}
|
||||||
// page ACL 1
|
// page ACL 1
|
||||||
if (
|
if (
|
||||||
isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) &&
|
isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) &&
|
||||||
$_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1
|
$_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1
|
||||||
) {
|
) {
|
||||||
$this->acl['base'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
$this->acl['base'] = (int)$_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
||||||
}
|
}
|
||||||
// user ACL 2
|
// user ACL 2
|
||||||
if ($_SESSION['USER_ACL_LEVEL'] != -1) {
|
if ($_SESSION['USER_ACL_LEVEL'] != -1) {
|
||||||
$this->acl['base'] = $_SESSION['USER_ACL_LEVEL'];
|
$this->acl['base'] = (int)$_SESSION['USER_ACL_LEVEL'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$_SESSION['BASE_ACL_LEVEL'] = $this->acl['base'];
|
$_SESSION['BASE_ACL_LEVEL'] = $this->acl['base'];
|
||||||
@@ -2347,7 +2345,10 @@ HTML;
|
|||||||
is_array($_SESSION['UNIT']) &&
|
is_array($_SESSION['UNIT']) &&
|
||||||
!array_key_exists($edit_access_id, $_SESSION['UNIT'])
|
!array_key_exists($edit_access_id, $_SESSION['UNIT'])
|
||||||
) {
|
) {
|
||||||
return $_SESSION['UNIT_DEFAULT'] ?? null;
|
$edit_access_id = null;
|
||||||
|
if (is_numeric($_SESSION['UNIT_DEFAULT'])) {
|
||||||
|
$edit_access_id = (int)$_SESSION['UNIT_DEFAULT'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $edit_access_id;
|
return $edit_access_id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,6 +164,10 @@ class Backend
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
$this->default_acl = $set_default_acl_level ?? DEFAULT_ACL_LEVEL;
|
$this->default_acl = $set_default_acl_level ?? DEFAULT_ACL_LEVEL;
|
||||||
|
// if negative or larger than 100, reset to 0
|
||||||
|
if ($this->default_acl < 0 || $this->default_acl > 100) {
|
||||||
|
$this->default_acl = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// queue key
|
// queue key
|
||||||
if (preg_match("/^(add|save|delete|remove|move|up|down|push_live)$/", $this->action)) {
|
if (preg_match("/^(add|save|delete|remove|move|up|down|push_live)$/", $this->action)) {
|
||||||
|
|||||||
@@ -452,6 +452,31 @@ class DateTime
|
|||||||
return $days;
|
return $days;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if a weekend day (sat/sun) is in the given date range
|
||||||
|
* Can have time too, but is not needed
|
||||||
|
*
|
||||||
|
* @param string $start_date Y-m-d
|
||||||
|
* @param string $end_date Y-m-d
|
||||||
|
* @return bool True for has weekend, False for has not
|
||||||
|
*/
|
||||||
|
public static function dateRangeHasWeekend(
|
||||||
|
string $start_date,
|
||||||
|
string $end_date,
|
||||||
|
): bool {
|
||||||
|
$dd_start = new \DateTime($start_date);
|
||||||
|
$dd_end = new \DateTime($end_date);
|
||||||
|
if (
|
||||||
|
// starts with a weekend
|
||||||
|
$dd_start->format('N') >= 6 ||
|
||||||
|
// start day plus diff will be 6 and so fall into a weekend
|
||||||
|
((int)$dd_start->format('w') + $dd_start->diff($dd_end)->days) >= 6
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
@@ -309,7 +309,7 @@ class IO
|
|||||||
// basic vars
|
// basic vars
|
||||||
// the dbh handler, if disconnected by command is null, bool:false on error,
|
// the dbh handler, if disconnected by command is null, bool:false on error,
|
||||||
/** @var \PgSql\Connection|false|null */
|
/** @var \PgSql\Connection|false|null */
|
||||||
private \PgSql\Connection|false|null $dbh;
|
private \PgSql\Connection|false|null $dbh = null;
|
||||||
/** @var bool DB_DEBUG ... (if set prints out debug msgs) */
|
/** @var bool DB_DEBUG ... (if set prints out debug msgs) */
|
||||||
private bool $db_debug = false;
|
private bool $db_debug = false;
|
||||||
/** @var string the DB connected to */
|
/** @var string the DB connected to */
|
||||||
@@ -814,13 +814,13 @@ class IO
|
|||||||
switch ($id) {
|
switch ($id) {
|
||||||
case 'DB_ERROR':
|
case 'DB_ERROR':
|
||||||
$this->log->error(
|
$this->log->error(
|
||||||
$debug_id . ' :' . $prefix . $error_string,
|
$prefix . $error_string,
|
||||||
$context
|
$context
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'DB_WARNING':
|
case 'DB_WARNING':
|
||||||
$this->log->warning(
|
$this->log->warning(
|
||||||
$debug_id . ' :' . $prefix . $error_string,
|
$prefix . $error_string,
|
||||||
$context
|
$context
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
@@ -2057,10 +2057,11 @@ class IO
|
|||||||
/**
|
/**
|
||||||
* this is only needed for Postgresql. Converts postgresql arrays to PHP
|
* this is only needed for Postgresql. Converts postgresql arrays to PHP
|
||||||
* Recommended to rather user 'array_to_json' instead and convet JSON in PHP
|
* Recommended to rather user 'array_to_json' instead and convet JSON in PHP
|
||||||
|
* or if ARRAY_AGG -> JSONB_AGG
|
||||||
*
|
*
|
||||||
* @param string $text input text to parse to an array
|
* @param string $text input text to parse to an array
|
||||||
* @return array<mixed> PHP array of the parsed data
|
* @return array<mixed> PHP array of the parsed data
|
||||||
* @deprecated Recommended to use 'array_to_json' in PostgreSQL instead
|
* @deprecated Recommended to use 'array_to_json/jsonb_agg' in PostgreSQL instead
|
||||||
*/
|
*/
|
||||||
public function dbArrayParse(string $text): array
|
public function dbArrayParse(string $text): array
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -458,6 +458,47 @@ final class CoreLibsCombinedDateTimeTest extends TestCase
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Undocumented function
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function dateRangeHasWeekendProvider(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'no weekend' => [
|
||||||
|
'2023-07-03',
|
||||||
|
'2023-07-04',
|
||||||
|
false
|
||||||
|
],
|
||||||
|
'start weekend sat' => [
|
||||||
|
'2023-07-01',
|
||||||
|
'2023-07-04',
|
||||||
|
true
|
||||||
|
],
|
||||||
|
'start weekend sun' => [
|
||||||
|
'2023-07-02',
|
||||||
|
'2023-07-04',
|
||||||
|
true
|
||||||
|
],
|
||||||
|
'end weekend sat' => [
|
||||||
|
'2023-07-03',
|
||||||
|
'2023-07-08',
|
||||||
|
true
|
||||||
|
],
|
||||||
|
'end weekend sun' => [
|
||||||
|
'2023-07-03',
|
||||||
|
'2023-07-09',
|
||||||
|
true
|
||||||
|
],
|
||||||
|
'long period > 6 days' => [
|
||||||
|
'2023-07-03',
|
||||||
|
'2023-07-27',
|
||||||
|
true
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* date string convert test
|
* date string convert test
|
||||||
*
|
*
|
||||||
@@ -780,6 +821,29 @@ final class CoreLibsCombinedDateTimeTest extends TestCase
|
|||||||
$output
|
$output
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Undocumented function
|
||||||
|
*
|
||||||
|
* @covers ::dateRangeHasWeekend
|
||||||
|
* @dataProvider dateRangeHasWeekendProvider
|
||||||
|
* @testdox dateRangeHasWeekend $start_date and $end_date are expected weekend $expected [$_dataName]
|
||||||
|
*
|
||||||
|
* @param string $start_date
|
||||||
|
* @param string $end_date
|
||||||
|
* @param bool $expected
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testDateRangeHasWeekend(
|
||||||
|
string $start_date,
|
||||||
|
string $end_date,
|
||||||
|
bool $expected
|
||||||
|
): void {
|
||||||
|
$this->assertEquals(
|
||||||
|
$expected,
|
||||||
|
\CoreLibs\Combined\DateTime::dateRangeHasWeekend($start_date, $end_date)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// __END__
|
// __END__
|
||||||
|
|||||||
Reference in New Issue
Block a user