Rename all ACL Login session vars to LOGIN_, remove debug enties
All ACL\Login loaded _SESSION vars are now prefixd with LOGIN_ only the language one stay as "DEFAULT_" Removed DEBUG_ALL/DB_DEBUG as they are now fully removed from everywhere - removed the edit user entries - removed from the edit user table The LANG direct loaded language entries is removed too. We only use locale and encoding. No more LOCALE_PATH and DEFAULT_DOMAIN _SESSION are set during the option set
This commit is contained in:
@@ -265,21 +265,21 @@ final class CoreLibsACLLoginTest extends TestCase
|
||||
'ajax_post_action' => 'login',
|
||||
],
|
||||
],
|
||||
'load, session ecuuid set only, php error' => [
|
||||
'load, session eucuuid set only, php error' => [
|
||||
[
|
||||
'page_name' => 'edit_users.php',
|
||||
],
|
||||
[],
|
||||
[],
|
||||
[
|
||||
'EUID' => 1,
|
||||
'EUCUID' => 'abc',
|
||||
'EUCUUID' => '1233456-1234-1234-1234-123456789012',
|
||||
'LOGIN_EUID' => 1,
|
||||
'LOGIN_EUCUID' => 'abc',
|
||||
'LOGIN_EUCUUID' => '1233456-1234-1234-1234-123456789012',
|
||||
],
|
||||
2,
|
||||
[],
|
||||
],
|
||||
'load, session euid set, all set' => [
|
||||
'load, session eucuuid set, all set' => [
|
||||
[
|
||||
'page_name' => 'edit_users.php',
|
||||
'edit_access_id' => 1,
|
||||
@@ -292,21 +292,21 @@ final class CoreLibsACLLoginTest extends TestCase
|
||||
[],
|
||||
[],
|
||||
[
|
||||
'EUID' => 1,
|
||||
'EUCUID' => 'abc',
|
||||
'EUCUUID' => 'SET_EUCUUID_IN_TEST',
|
||||
'USER_NAME' => '',
|
||||
'GROUP_NAME' => '',
|
||||
'ADMIN' => 1,
|
||||
'GROUP_ACL_LEVEL' => -1,
|
||||
'PAGES_ACL_LEVEL' => [],
|
||||
'USER_ACL_LEVEL' => -1,
|
||||
'USER_ADDITIONAL_ACL' => [],
|
||||
'GROUP_ADDITIONAL_ACL' => [],
|
||||
'UNIT_UID' => [
|
||||
'LOGIN_EUID' => 1,
|
||||
'LOGIN_EUCUID' => 'abc',
|
||||
'LOGIN_EUCUUID' => 'SET_EUCUUID_IN_TEST',
|
||||
'LOGIN_USER_NAME' => '',
|
||||
'LOGIN_GROUP_NAME' => '',
|
||||
'LOGIN_ADMIN' => 1,
|
||||
'LOGIN_GROUP_ACL_LEVEL' => -1,
|
||||
'LOGIN_PAGES_ACL_LEVEL' => [],
|
||||
'LOGIN_USER_ACL_LEVEL' => -1,
|
||||
'LOGIN_USER_ADDITIONAL_ACL' => [],
|
||||
'LOGIN_GROUP_ADDITIONAL_ACL' => [],
|
||||
'LOGIN_UNIT_UID' => [
|
||||
'AdminAccess' => '123456789012',
|
||||
],
|
||||
'UNIT' => [
|
||||
'LOGIN_UNIT' => [
|
||||
'123456789012' => [
|
||||
'id' => 1,
|
||||
'acl_level' => 80,
|
||||
@@ -320,8 +320,8 @@ final class CoreLibsACLLoginTest extends TestCase
|
||||
'additional_acl' => []
|
||||
],
|
||||
],
|
||||
// 'UNIT_DEFAULT' => '',
|
||||
// 'DEFAULT_ACL_LIST' => [],
|
||||
// 'LOGIN_UNIT_DEFAULT' => '',
|
||||
// 'LOGIN_DEFAULT_ACL_LIST' => [],
|
||||
],
|
||||
0,
|
||||
[
|
||||
@@ -1177,8 +1177,8 @@ final class CoreLibsACLLoginTest extends TestCase
|
||||
}
|
||||
|
||||
// set ingoing session cuuid if requested
|
||||
if (isset($session['EUCUUID']) && $session['EUCUUID'] == 'SET_EUCUUID_IN_TEST') {
|
||||
$session['EUCUUID'] = self::$edit_user_cuuid;
|
||||
if (isset($session['LOGIN_EUCUUID']) && $session['LOGIN_EUCUUID'] == 'SET_EUCUUID_IN_TEST') {
|
||||
$session['LOGIN_EUCUUID'] = self::$edit_user_cuuid;
|
||||
}
|
||||
|
||||
// set _SESSION data
|
||||
@@ -1582,11 +1582,12 @@ final class CoreLibsACLLoginTest extends TestCase
|
||||
// - loginCheckPermissions
|
||||
// - loginGetPermissionOkay
|
||||
} catch (\Exception $e) {
|
||||
// print "[E]: " . $e->getCode() . ", ERROR: " . $login_mock->loginGetLastErrorCode() . "/"
|
||||
// . ($expected['login_error'] ?? 0) . "\n";
|
||||
// print "AJAX: " . $login_mock->loginGetAjaxFlag() . "\n";
|
||||
// print "AJAX GLOBAL: " . ($GLOBALS['AJAX_PAGE'] ?? '{f}') . "\n";
|
||||
// print "Login error expext: " . ($expected['login_error'] ?? '{0}') . "\n";
|
||||
/* print "[E]: " . $e->getCode() . ", ERROR: " . $login_mock->loginGetLastErrorCode() . "/"
|
||||
. ($expected['login_error'] ?? 0) . "\n";
|
||||
print "AJAX: " . $login_mock->loginGetAjaxFlag() . "\n";
|
||||
print "AJAX GLOBAL: " . ($GLOBALS['AJAX_PAGE'] ?? '{f}') . "\n";
|
||||
print "Login error expext: " . ($expected['login_error'] ?? '{0}') . "\n";
|
||||
print "POST exit: " . ($_POST['login_exit'] ?? '{0}') . "\n"; */
|
||||
// if this is 100, then we do further error checks
|
||||
if (
|
||||
$e->getCode() == 100 ||
|
||||
|
||||
@@ -21,341 +21,6 @@ final class CoreLibsLanguageGetLocaleTest extends TestCase
|
||||
. 'includes' . DIRECTORY_SEPARATOR
|
||||
. 'locale' . DIRECTORY_SEPARATOR;
|
||||
|
||||
/**
|
||||
* set all constant variables that must be set before call
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function setUpBeforeClass(): void
|
||||
{
|
||||
// default web page encoding setting
|
||||
/* if (!defined('DEFAULT_ENCODING')) {
|
||||
define('DEFAULT_ENCODING', 'UTF-8');
|
||||
}
|
||||
if (!defined('DEFAULT_LOCALE')) {
|
||||
// default lang + encoding
|
||||
define('DEFAULT_LOCALE', 'en_US.UTF-8');
|
||||
}
|
||||
// site
|
||||
if (!defined('SITE_ENCODING')) {
|
||||
define('SITE_ENCODING', DEFAULT_ENCODING);
|
||||
}
|
||||
if (!defined('SITE_LOCALE')) {
|
||||
define('SITE_LOCALE', DEFAULT_LOCALE);
|
||||
} */
|
||||
// just set
|
||||
/* if (!defined('BASE')) {
|
||||
define('BASE', str_replace('/configs', '', __DIR__) . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
if (!defined('INCLUDES')) {
|
||||
define('INCLUDES', 'includes' . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
if (!defined('LANG')) {
|
||||
define('LANG', 'lang' . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
if (!defined('LOCALE')) {
|
||||
define('LOCALE', 'locale' . DIRECTORY_SEPARATOR);
|
||||
}
|
||||
if (!defined('CONTENT_PATH')) {
|
||||
define('CONTENT_PATH', 'frontend' . DIRECTORY_SEPARATOR);
|
||||
} */
|
||||
// array session
|
||||
$_SESSION = [];
|
||||
global $_SESSION;
|
||||
}
|
||||
|
||||
/**
|
||||
* all the test data
|
||||
*
|
||||
* @return array<mixed>
|
||||
*/
|
||||
/* public function setLocaleProvider(): array
|
||||
{
|
||||
return [
|
||||
// 0: locale
|
||||
// 1: domain
|
||||
// 2: encoding
|
||||
// 3: path
|
||||
// 4: SESSION: DEFAULT_LOCALE
|
||||
// 5: SESSION: DEFAULT_CHARSET
|
||||
// 6: expected array
|
||||
// 7: deprecation message
|
||||
'no params, all default constants' => [
|
||||
// lang, domain, encoding, path
|
||||
null, null, null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'en_US.UTF-8',
|
||||
'lang' => 'en_US',
|
||||
'domain' => 'frontend',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $locale or unset SESSION locale is deprecated',
|
||||
],
|
||||
'no params, session charset and lang' => [
|
||||
// lang, domain, encoding, path
|
||||
null, null, null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
'ja_JP', 'UTF-8',
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja_JP',
|
||||
'lang' => 'ja_JP',
|
||||
'domain' => 'frontend',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $domain is deprecated'
|
||||
],
|
||||
'no params, session charset and lang short' => [
|
||||
// lang, domain, encoding, path
|
||||
null, null, null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
'ja', 'UTF-8',
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'frontend',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $domain is deprecated',
|
||||
],
|
||||
// param lang (no sessions)
|
||||
'locale param only, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja.UTF-8', null, null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja.UTF-8',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'frontend',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $domain is deprecated',
|
||||
],
|
||||
// different locale setting
|
||||
'locale complex param only, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja_JP.SJIS', null, null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja_JP.SJIS',
|
||||
'lang' => 'ja_JP',
|
||||
'domain' => 'frontend',
|
||||
'encoding' => 'SJIS',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $domain is deprecated',
|
||||
],
|
||||
// param lang and domain (no override)
|
||||
'locale, domain params, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja.UTF-8', 'admin', null, null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja.UTF-8',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'admin',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $path is deprecated',
|
||||
],
|
||||
// param lang and domain (no override)
|
||||
'locale, domain, encoding params, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja.UTF-8', 'admin', 'UTF-8', null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja.UTF-8',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'admin',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $path is deprecated'
|
||||
],
|
||||
// lang, domain, path (no override)
|
||||
'locale, domain and path, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja.UTF-8', 'admin', '', __DIR__ . '/locale_other/',
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja.UTF-8',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'admin',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?locale_other\/$/",
|
||||
],
|
||||
null
|
||||
],
|
||||
// all params set (no override)
|
||||
'all parameter, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'ja', 'admin', 'UTF-8', __DIR__ . '/locale_other/',
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'ja',
|
||||
'lang' => 'ja',
|
||||
'domain' => 'admin',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?locale_other\/$/",
|
||||
],
|
||||
null
|
||||
],
|
||||
// param lang and domain (no override)
|
||||
'long locale, domain, encoding params, no sessions' => [
|
||||
// lang, domain, encoding, path
|
||||
'de_CH.UTF-8@euro', 'admin', 'UTF-8', null,
|
||||
// SESSION DEFAULT_LOCALE, SESSION: DEFAULT_CHARSET
|
||||
null, null,
|
||||
// return array
|
||||
[
|
||||
'locale' => 'de_CH.UTF-8@euro',
|
||||
'lang' => 'de_CH',
|
||||
'domain' => 'admin',
|
||||
'encoding' => 'UTF-8',
|
||||
'path' => "/^\/(.*\/)?includes\/locale\/$/",
|
||||
],
|
||||
'setLocale: Unset $path is deprecated',
|
||||
],
|
||||
// TODO invalid params (bad path) (no override)
|
||||
// TODO param calls, but with override set
|
||||
];
|
||||
} */
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @covers ::setLocale
|
||||
* @dataProvider setLocaleProvider
|
||||
* @testdox lang settings lang $language, domain $domain, encoding $encoding, path $path; session lang: $SESSION_DEFAULT_LOCALE, session char: $SESSION_DEFAULT_CHARSET [$_dataName]
|
||||
*
|
||||
* @param string|null $language
|
||||
* @param string|null $domain
|
||||
* @param string|null $encoding
|
||||
* @param string|null $path
|
||||
* @param string|null $SESSION_DEFAULT_LOCALE
|
||||
* @param string|null $SESSION_DEFAULT_CHARSET
|
||||
* @param array<mixed> $expected
|
||||
* @param string|null $deprecation_message
|
||||
* @return void
|
||||
*/
|
||||
/* public function testsetLocale(
|
||||
?string $language,
|
||||
?string $domain,
|
||||
?string $encoding,
|
||||
?string $path,
|
||||
?string $SESSION_DEFAULT_LOCALE,
|
||||
?string $SESSION_DEFAULT_CHARSET,
|
||||
array $expected,
|
||||
?string $deprecation_message
|
||||
): void {
|
||||
$return_lang_settings = [];
|
||||
global $_SESSION;
|
||||
// set override
|
||||
if ($SESSION_DEFAULT_LOCALE !== null) {
|
||||
$_SESSION['DEFAULT_LOCALE'] = $SESSION_DEFAULT_LOCALE;
|
||||
}
|
||||
if ($SESSION_DEFAULT_CHARSET !== null) {
|
||||
$_SESSION['DEFAULT_CHARSET'] = $SESSION_DEFAULT_CHARSET;
|
||||
}
|
||||
if ($deprecation_message !== null) {
|
||||
set_error_handler(
|
||||
static function (int $errno, string $errstr): never {
|
||||
throw new \Exception($errstr, $errno);
|
||||
},
|
||||
E_USER_DEPRECATED
|
||||
);
|
||||
// catch this with the message
|
||||
$this->expectExceptionMessage($deprecation_message);
|
||||
}
|
||||
// function call
|
||||
if (
|
||||
$language === null && $domain === null &&
|
||||
$encoding === null && $path === null
|
||||
) {
|
||||
$return_lang_settings = \CoreLibs\Language\GetLocale::setLocale();
|
||||
} elseif (
|
||||
$language !== null && $domain === null &&
|
||||
$encoding === null && $path === null
|
||||
) {
|
||||
$return_lang_settings = \CoreLibs\Language\GetLocale::setLocale(
|
||||
$language
|
||||
);
|
||||
} elseif (
|
||||
$language !== null && $domain !== null &&
|
||||
$encoding === null && $path === null
|
||||
) {
|
||||
$return_lang_settings = \CoreLibs\Language\GetLocale::setLocale(
|
||||
$language,
|
||||
$domain
|
||||
);
|
||||
} elseif (
|
||||
$language !== null && $domain !== null &&
|
||||
$encoding !== null && $path === null
|
||||
) {
|
||||
$return_lang_settings = \CoreLibs\Language\GetLocale::setLocale(
|
||||
$language,
|
||||
$domain,
|
||||
$encoding
|
||||
);
|
||||
} else {
|
||||
$return_lang_settings = \CoreLibs\Language\GetLocale::setLocale(
|
||||
$language,
|
||||
$domain,
|
||||
$encoding,
|
||||
$path
|
||||
);
|
||||
}
|
||||
restore_error_handler();
|
||||
// print "RETURN: " . print_r($return_lang_settings, true) . "\n";
|
||||
|
||||
foreach (
|
||||
[
|
||||
'locale', 'lang', 'domain', 'encoding', 'path'
|
||||
] as $key
|
||||
) {
|
||||
$value = $expected[$key];
|
||||
if (strpos($value, "/") === 0) {
|
||||
// this is regex
|
||||
$this->assertMatchesRegularExpression(
|
||||
$value,
|
||||
$return_lang_settings[$key],
|
||||
'assert regex failed for ' . $key
|
||||
);
|
||||
} else {
|
||||
// assert equal
|
||||
$this->assertEquals(
|
||||
$value,
|
||||
$return_lang_settings[$key],
|
||||
'assert equal failed for ' . $key
|
||||
);
|
||||
}
|
||||
}
|
||||
// unset all vars
|
||||
$_SESSION = [];
|
||||
unset($GLOBALS['OVERRIDE_LANG']);
|
||||
} */
|
||||
|
||||
/**
|
||||
* all the test data
|
||||
*
|
||||
|
||||
@@ -151,8 +151,8 @@ foreach ($test_files as $file => $name) {
|
||||
|
||||
|
||||
print "<br>";
|
||||
print "ECUID: " . $session->get('ECUID') . "<br>";
|
||||
print "ECUUID: " . $session->get('ECUUID') . "<br>";
|
||||
print "ECUID: " . $session->get('LOGIN_EUCUID') . "<br>";
|
||||
print "ECUUID: " . $session->get('LOGIN_EUCUUID') . "<br>";
|
||||
|
||||
print "<hr>";
|
||||
print "LOCALE: " . Support::dumpVar($locale) . "<br>";
|
||||
|
||||
@@ -14,13 +14,14 @@
|
||||
* will be a class one day
|
||||
*
|
||||
* descrption of session_vars
|
||||
* DEBUG_ALL - set to one, prints out error_msg var at end of php execution
|
||||
* DB_DEBUG - prints out database debugs (query, etc)
|
||||
* GROUP_LEVEL - the level he can access (numeric)
|
||||
* USER_NAME - login name from user
|
||||
* LANG - lang to show edit interface (not yet used)
|
||||
* TODO: Update session var info
|
||||
* [DEPRECATED] DEBUG_ALL - set to one, prints out error_msg var at end of php execution
|
||||
* [DEPRECATED] DB_DEBUG - prints out database debugs (query, etc)
|
||||
* [REMOVED] LOGIN_GROUP_LEVEL - the level he can access (numeric)
|
||||
* LOGIN_USER_NAME - login name from user
|
||||
* [DEPRECATED] LANG - lang to show edit interface (not yet used)
|
||||
* DEFAULT_CHARSET - in connection with LANG (not yet used)
|
||||
* PAGES - array of hashes
|
||||
* LOGIN_PAGES - array of hashes
|
||||
* edit_page_id - ID from the edit_pages table
|
||||
* filename - name of the file
|
||||
* page_name - name in menu
|
||||
@@ -262,7 +263,7 @@ class Login
|
||||
],
|
||||
// actually obsolete
|
||||
'100' => [
|
||||
'msg' => '[EUCUUID] came in as GET/POST!',
|
||||
'msg' => '[EUCUUID] set from GET/POST!',
|
||||
'flag' => 'e',
|
||||
],
|
||||
// query errors
|
||||
@@ -393,8 +394,8 @@ class Login
|
||||
}
|
||||
// write that into the session
|
||||
$this->session->setMany([
|
||||
'DEFAULT_ACL_LIST' => $this->default_acl_list,
|
||||
'DEFAULT_ACL_LIST_TYPE' => $this->default_acl_list_type,
|
||||
'LOGIN_DEFAULT_ACL_LIST' => $this->default_acl_list,
|
||||
'LOGIN_DEFAULT_ACL_LIST_TYPE' => $this->default_acl_list_type,
|
||||
]);
|
||||
|
||||
$this->loginSetEditLogWriteTypeAvailable();
|
||||
@@ -587,7 +588,6 @@ class Login
|
||||
// set path
|
||||
$options['locale_path'] = BASE . INCLUDES . LOCALE;
|
||||
}
|
||||
$this->session->set('LOCALE_PATH', $options['locale_path']);
|
||||
// LANG: LOCALE
|
||||
if (empty($options['site_locale'])) {
|
||||
trigger_error(
|
||||
@@ -622,7 +622,6 @@ class Login
|
||||
$options['set_domain'] = str_replace(DIRECTORY_SEPARATOR, '', CONTENT_PATH);
|
||||
}
|
||||
}
|
||||
$this->session->set('DEFAULT_DOMAIN', $options['site_domain']);
|
||||
// LANG: ENCODING
|
||||
if (empty($options['site_encoding'])) {
|
||||
trigger_error(
|
||||
@@ -943,9 +942,9 @@ class Login
|
||||
$this->edit_user_cuid = (string)$res['cuid'];
|
||||
$this->edit_user_cuuid = (string)$res['cuuid'];
|
||||
$this->session->setMany([
|
||||
'EUID' => $this->edit_user_id, // DEPRECATED
|
||||
'EUCUID' => $this->edit_user_cuid,
|
||||
'EUCUUID' => $this->edit_user_cuuid,
|
||||
'LOGIN_EUID' => $this->edit_user_id, // DEPRECATED
|
||||
'LOGIN_EUCUID' => $this->edit_user_cuid,
|
||||
'LOGIN_EUCUUID' => $this->edit_user_cuuid,
|
||||
]);
|
||||
// check if user is okay
|
||||
$this->loginCheckPermissions();
|
||||
@@ -968,35 +967,36 @@ class Login
|
||||
$encoding = $res['encoding'] ?? 'UTF-8';
|
||||
$this->session->setMany([
|
||||
// now set all session vars and read page permissions
|
||||
'DEBUG_ALL' => $this->db->dbBoolean($res['debug']),
|
||||
'DB_DEBUG' => $this->db->dbBoolean($res['db_debug']),
|
||||
// DEBUG flag is deprecated
|
||||
// 'DEBUG_ALL' => $this->db->dbBoolean($res['debug']),
|
||||
// 'DB_DEBUG' => $this->db->dbBoolean($res['db_debug']),
|
||||
// general info for user logged in
|
||||
'USER_NAME' => $res['username'],
|
||||
'ADMIN' => $res['admin'],
|
||||
'GROUP_NAME' => $res['edit_group_name'],
|
||||
'USER_ACL_LEVEL' => $res['user_level'],
|
||||
'USER_ACL_TYPE' => $res['user_type'],
|
||||
'USER_ADDITIONAL_ACL' => Json::jsonConvertToArray($res['user_additional_acl']),
|
||||
'GROUP_ACL_LEVEL' => $res['group_level'],
|
||||
'GROUP_ACL_TYPE' => $res['group_type'],
|
||||
'GROUP_ADDITIONAL_ACL' => Json::jsonConvertToArray($res['group_additional_acl']),
|
||||
'LOGIN_USER_NAME' => $res['username'],
|
||||
'LOGIN_ADMIN' => $res['admin'],
|
||||
'LOGIN_GROUP_NAME' => $res['edit_group_name'],
|
||||
'LOGIN_USER_ACL_LEVEL' => $res['user_level'],
|
||||
'LOGIN_USER_ACL_TYPE' => $res['user_type'],
|
||||
'LOGIN_USER_ADDITIONAL_ACL' => Json::jsonConvertToArray($res['user_additional_acl']),
|
||||
'LOGIN_GROUP_ACL_LEVEL' => $res['group_level'],
|
||||
'LOGIN_GROUP_ACL_TYPE' => $res['group_type'],
|
||||
'LOGIN_GROUP_ADDITIONAL_ACL' => Json::jsonConvertToArray($res['group_additional_acl']),
|
||||
// deprecated TEMPLATE setting
|
||||
'TEMPLATE' => $res['template'] ? $res['template'] : '',
|
||||
'HEADER_COLOR' => !empty($res['second_header_color']) ?
|
||||
// 'TEMPLATE' => $res['template'] ? $res['template'] : '',
|
||||
'LOGIN_HEADER_COLOR' => !empty($res['second_header_color']) ?
|
||||
$res['second_header_color'] :
|
||||
$res['first_header_color'],
|
||||
// LANGUAGE/LOCALE/ENCODING:
|
||||
'LANG' => $locale,
|
||||
// 'LOGIN_LANG' => $locale,
|
||||
'DEFAULT_CHARSET' => $encoding,
|
||||
'DEFAULT_LOCALE' => $locale . '.' . strtoupper($encoding),
|
||||
'DEFAULT_LANG' => $locale . '_' . strtolower(str_replace('-', '', $encoding))
|
||||
]);
|
||||
// missing # before, this is for legacy data, will be deprecated
|
||||
if (
|
||||
!empty($this->session->get('HEADER_COLOR')) &&
|
||||
preg_match("/^[\dA-Fa-f]{6,8}$/", $this->session->get('HEADER_COLOR'))
|
||||
!empty($this->session->get('LOGIN_HEADER_COLOR')) &&
|
||||
preg_match("/^[\dA-Fa-f]{6,8}$/", $this->session->get('LOGIN_HEADER_COLOR'))
|
||||
) {
|
||||
$this->session->set('HEADER_COLOR', '#' . $this->session->get('HEADER_COLOR'));
|
||||
$this->session->set('LOGIN_HEADER_COLOR', '#' . $this->session->get('LOGIN_HEADER_COLOR'));
|
||||
}
|
||||
// TODO: make sure that header color is valid:
|
||||
// # + 6 hex
|
||||
@@ -1120,8 +1120,8 @@ class Login
|
||||
}
|
||||
// write back the pages data to the output array
|
||||
$this->session->setMany([
|
||||
'PAGES' => $pages,
|
||||
'PAGES_ACL_LEVEL' => $pages_acl,
|
||||
'LOGIN_PAGES' => $pages,
|
||||
'LOGIN_PAGES_ACL_LEVEL' => $pages_acl,
|
||||
]);
|
||||
// load the edit_access user rights
|
||||
$q = <<<SQL
|
||||
@@ -1172,8 +1172,8 @@ class Login
|
||||
];
|
||||
// set the default unit
|
||||
if ($res['edit_default']) {
|
||||
$this->session->set('UNIT_DEFAULT_EAID', (int)$res['edit_access_id']); // DEPRECATED
|
||||
$this->session->set('UNIT_DEFAULT_EACUID', (int)$res['cuid']);
|
||||
$this->session->set('LOGIN_UNIT_DEFAULT_EAID', (int)$res['edit_access_id']); // DEPRECATED
|
||||
$this->session->set('LOGIN_UNIT_DEFAULT_EACUID', (int)$res['cuid']);
|
||||
}
|
||||
$unit_uid_lookup[$res['uid']] = $res['edit_access_id']; // DEPRECATED
|
||||
$unit_cuid_lookup[$res['uid']] = $res['cuid'];
|
||||
@@ -1183,13 +1183,13 @@ class Login
|
||||
$unit_acl[$res['cuid']] = $res['level'];
|
||||
}
|
||||
$this->session->setMany([
|
||||
'UNIT_UID' => $unit_uid_lookup, // DEPRECATED
|
||||
'UNIT_CUID' => $unit_cuid_lookup,
|
||||
'UNIT' => $unit_access_cuid,
|
||||
'UNIT_LEGACY' => $unit_access_eaid, // DEPRECATED
|
||||
'UNIT_ACL_LEVEL' => $unit_acl,
|
||||
'EAID' => $eaid, // DEPRECATED
|
||||
'EACUID' => $eacuid,
|
||||
'LOGIN_UNIT_UID' => $unit_uid_lookup, // DEPRECATED
|
||||
'LOGIN_UNIT_CUID' => $unit_cuid_lookup,
|
||||
'LOGIN_UNIT' => $unit_access_cuid,
|
||||
'LOGIN_UNIT_LEGACY' => $unit_access_eaid, // DEPRECATED
|
||||
'LOGIN_UNIT_ACL_LEVEL' => $unit_acl,
|
||||
'LOGIN_EAID' => $eaid, // DEPRECATED
|
||||
'LOGIN_EACUID' => $eacuid,
|
||||
]);
|
||||
} // user has permission to THIS page
|
||||
} // user was not enabled or other login error
|
||||
@@ -1263,21 +1263,21 @@ class Login
|
||||
return;
|
||||
}
|
||||
// username (login), group name
|
||||
$this->acl['user_name'] = $_SESSION['USER_NAME'];
|
||||
$this->acl['group_name'] = $_SESSION['GROUP_NAME'];
|
||||
$this->acl['user_name'] = $_SESSION['LOGIN_USER_NAME'];
|
||||
$this->acl['group_name'] = $_SESSION['LOGIN_GROUP_NAME'];
|
||||
// edit user cuid
|
||||
$this->acl['eucuid'] = $_SESSION['EUCUID'];
|
||||
$this->acl['eucuuid'] = $_SESSION['EUCUUID'];
|
||||
$this->acl['eucuid'] = $_SESSION['LOGIN_EUCUID'];
|
||||
$this->acl['eucuuid'] = $_SESSION['LOGIN_EUCUUID'];
|
||||
// set additional acl
|
||||
$this->acl['additional_acl'] = [
|
||||
'user' => $_SESSION['USER_ADDITIONAL_ACL'],
|
||||
'group' => $_SESSION['GROUP_ADDITIONAL_ACL'],
|
||||
'user' => $_SESSION['LOGIN_USER_ADDITIONAL_ACL'],
|
||||
'group' => $_SESSION['LOGIN_GROUP_ADDITIONAL_ACL'],
|
||||
];
|
||||
// we start with the default acl
|
||||
$this->acl['base'] = $this->default_acl_level;
|
||||
|
||||
// set admin flag and base to 100
|
||||
if (!empty($_SESSION['ADMIN'])) {
|
||||
if (!empty($_SESSION['LOGIN_ADMIN'])) {
|
||||
$this->acl['admin'] = 1;
|
||||
$this->acl['base'] = 100;
|
||||
} else {
|
||||
@@ -1285,36 +1285,36 @@ class Login
|
||||
// now go throw the flow and set the correct ACL
|
||||
// user > page > group
|
||||
// group ACL 0
|
||||
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
||||
$this->acl['base'] = (int)$_SESSION['GROUP_ACL_LEVEL'];
|
||||
if ($_SESSION['LOGIN_GROUP_ACL_LEVEL'] != -1) {
|
||||
$this->acl['base'] = (int)$_SESSION['LOGIN_GROUP_ACL_LEVEL'];
|
||||
}
|
||||
// page ACL 1
|
||||
if (
|
||||
isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) &&
|
||||
$_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1
|
||||
isset($_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name]) &&
|
||||
$_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name] != -1
|
||||
) {
|
||||
$this->acl['base'] = (int)$_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
||||
$this->acl['base'] = (int)$_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name];
|
||||
}
|
||||
// user ACL 2
|
||||
if ($_SESSION['USER_ACL_LEVEL'] != -1) {
|
||||
$this->acl['base'] = (int)$_SESSION['USER_ACL_LEVEL'];
|
||||
if ($_SESSION['LOGIN_USER_ACL_LEVEL'] != -1) {
|
||||
$this->acl['base'] = (int)$_SESSION['LOGIN_USER_ACL_LEVEL'];
|
||||
}
|
||||
}
|
||||
$this->session->set('BASE_ACL_LEVEL', $this->acl['base']);
|
||||
$this->session->set('LOGIN_BASE_ACL_LEVEL', $this->acl['base']);
|
||||
|
||||
// set the current page acl
|
||||
// start with base acl
|
||||
// set group if not -1, overrides default
|
||||
// set page if not -1, overrides group set
|
||||
$this->acl['page'] = $this->acl['base'];
|
||||
if ($_SESSION['GROUP_ACL_LEVEL'] != -1) {
|
||||
$this->acl['page'] = $_SESSION['GROUP_ACL_LEVEL'];
|
||||
if ($_SESSION['LOGIN_GROUP_ACL_LEVEL'] != -1) {
|
||||
$this->acl['page'] = $_SESSION['LOGIN_GROUP_ACL_LEVEL'];
|
||||
}
|
||||
if (
|
||||
isset($_SESSION['PAGES_ACL_LEVEL'][$this->page_name]) &&
|
||||
$_SESSION['PAGES_ACL_LEVEL'][$this->page_name] != -1
|
||||
isset($_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name]) &&
|
||||
$_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name] != -1
|
||||
) {
|
||||
$this->acl['page'] = $_SESSION['PAGES_ACL_LEVEL'][$this->page_name];
|
||||
$this->acl['page'] = $_SESSION['LOGIN_PAGES_ACL_LEVEL'][$this->page_name];
|
||||
}
|
||||
|
||||
$this->acl['unit_id'] = null;
|
||||
@@ -1325,7 +1325,7 @@ class Login
|
||||
$this->acl['unit_detail'] = [];
|
||||
|
||||
// PER ACCOUNT (UNIT/edit access)->
|
||||
foreach ($_SESSION['UNIT'] as $ea_cuid => $unit) {
|
||||
foreach ($_SESSION['LOGIN_UNIT'] as $ea_cuid => $unit) {
|
||||
// if admin flag is set, all units are set to 100
|
||||
if (!empty($this->acl['admin'])) {
|
||||
$this->acl['unit'][$ea_cuid] = $this->acl['base'];
|
||||
@@ -1355,7 +1355,7 @@ class Login
|
||||
}
|
||||
}
|
||||
// flag if to show extra edit access drop downs (because user has multiple groups assigned)
|
||||
if (count($_SESSION['UNIT']) > 1) {
|
||||
if (count($_SESSION['LOGIN_UNIT']) > 1) {
|
||||
$this->acl['show_ea_extra'] = true;
|
||||
} else {
|
||||
$this->acl['show_ea_extra'] = false;
|
||||
@@ -1370,7 +1370,7 @@ class Login
|
||||
// $this->debug('ACL', $this->print_ar($this->acl));
|
||||
}
|
||||
|
||||
// MARK: lgin set locale
|
||||
// MARK: login set locale
|
||||
|
||||
/**
|
||||
* set locale
|
||||
@@ -2180,13 +2180,14 @@ HTML;
|
||||
),
|
||||
[
|
||||
// row 1
|
||||
empty($username) ? $this->session->get('USER_NAME') ?? '' : $username,
|
||||
is_numeric($this->session->get('EUID')) ?
|
||||
$this->session->get('EUID') : null,
|
||||
is_string($this->session->get('EUCUID')) ?
|
||||
$this->session->get('EUCUID') : null,
|
||||
!empty($this->session->get('EUCUUID')) && Uids::validateUuuidv4($this->session->get('EUCUUID')) ?
|
||||
$this->session->get('EUCUUID') : null,
|
||||
empty($username) ? $this->session->get('LOGIN_USER_NAME') ?? '' : $username,
|
||||
is_numeric($this->session->get('LOGIN_EUID')) ?
|
||||
$this->session->get('LOGIN_EUID') : null,
|
||||
is_string($this->session->get('LOGIN_EUCUID')) ?
|
||||
$this->session->get('LOGIN_EUCUID') : null,
|
||||
!empty($this->session->get('LOGIN_EUCUUID')) &&
|
||||
Uids::validateUuuidv4($this->session->get('LOGIN_EUCUUID')) ?
|
||||
$this->session->get('LOGIN_EUCUUID') : null,
|
||||
(string)$event,
|
||||
(string)$error,
|
||||
$data_write,
|
||||
@@ -2313,8 +2314,7 @@ HTML;
|
||||
}
|
||||
}
|
||||
// if there is none, there is none, saves me POST/GET check
|
||||
// $this->euid = (int)($this->session->get('EUID') ?? 0);
|
||||
$this->edit_user_cuuid = (string)($this->session->get('EUCUUID') ?? '');
|
||||
$this->edit_user_cuuid = (string)($this->session->get('LOGIN_EUCUUID') ?? '');
|
||||
// get login vars, are so, can't be changed
|
||||
// prepare
|
||||
// pass on vars to Object vars
|
||||
@@ -2481,7 +2481,7 @@ HTML;
|
||||
*/
|
||||
public function loginGetHeaderColor(): ?string
|
||||
{
|
||||
return $this->session->get('HEADER_COLOR');
|
||||
return $this->session->get('LOGIN_HEADER_COLOR');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2492,7 +2492,7 @@ HTML;
|
||||
public function loginGetPages(): array
|
||||
{
|
||||
|
||||
return $this->session->get('PAGES');
|
||||
return $this->session->get('LOGIN_PAGES');
|
||||
}
|
||||
|
||||
// MARK: logged in uid(pk)/cuid/ecuuid
|
||||
@@ -2528,6 +2528,11 @@ HTML;
|
||||
return (string)$this->edit_user_cuuid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current set EUCUUID (edit user cuuid)
|
||||
*
|
||||
* @return string EUCUUID as string
|
||||
*/
|
||||
public function loginGetEuCuuid(): string
|
||||
{
|
||||
return (string)$this->edit_user_cuuid;
|
||||
@@ -2791,9 +2796,9 @@ HTML;
|
||||
$this->edit_user_cuid = (string)$res['cuid'];
|
||||
$this->edit_user_cuuid = (string)$res['cuuid'];
|
||||
$this->session->setMany([
|
||||
'EUID' => $this->edit_user_id, // DEPRECATED
|
||||
'EUCUID' => $this->edit_user_cuid,
|
||||
'EUCUUID' => $this->edit_user_cuuid,
|
||||
'LOGIN_EUID' => $this->edit_user_id, // DEPRECATED
|
||||
'LOGIN_EUCUID' => $this->edit_user_cuid,
|
||||
'LOGIN_EUCUUID' => $this->edit_user_cuuid,
|
||||
]);
|
||||
// if called from public, so we can check if the permissions are ok
|
||||
return $this->permission_okay;
|
||||
@@ -2962,12 +2967,12 @@ HTML;
|
||||
{
|
||||
if (
|
||||
$cuid !== null &&
|
||||
is_array($this->session->get('UNIT')) &&
|
||||
!array_key_exists($cuid, $this->session->get('UNIT'))
|
||||
is_array($this->session->get('LOGIN_UNIT')) &&
|
||||
!array_key_exists($cuid, $this->session->get('LOGIN_UNIT'))
|
||||
) {
|
||||
$cuid = null;
|
||||
if (!empty($this->session->get('UNIT_DEFAULT_EACUID'))) {
|
||||
$cuid = $this->session->get('UNIT_DEFAULT_EACUID');
|
||||
if (!empty($this->session->get('LOGIN_UNIT_DEFAULT_EACUID'))) {
|
||||
$cuid = $this->session->get('LOGIN_UNIT_DEFAULT_EACUID');
|
||||
}
|
||||
}
|
||||
return $cuid;
|
||||
@@ -2987,12 +2992,12 @@ HTML;
|
||||
{
|
||||
if (
|
||||
$edit_access_id !== null &&
|
||||
is_array($this->session->get('UNIT_LEGACY')) &&
|
||||
!array_key_exists($edit_access_id, $this->session->get('UNIT_LEGACY'))
|
||||
is_array($this->session->get('LOGIN_UNIT_LEGACY')) &&
|
||||
!array_key_exists($edit_access_id, $this->session->get('LOGIN_UNIT_LEGACY'))
|
||||
) {
|
||||
$edit_access_id = null;
|
||||
if (!empty($this->session->get('UNIT_DEFAULT_EAID'))) {
|
||||
$edit_access_id = (int)$this->session->get('UNIT_DEFAULT_EAID');
|
||||
if (!empty($this->session->get('LOGIN_UNIT_DEFAULT_EAID'))) {
|
||||
$edit_access_id = (int)$this->session->get('LOGIN_UNIT_DEFAULT_EAID');
|
||||
}
|
||||
}
|
||||
return $edit_access_id;
|
||||
@@ -3010,10 +3015,10 @@ HTML;
|
||||
string $cuid,
|
||||
string|int $data_key
|
||||
): false|string {
|
||||
if (!isset($_SESSION['UNIT'][$cuid]['data'][$data_key])) {
|
||||
if (!isset($_SESSION['LOGIN_UNIT'][$cuid]['data'][$data_key])) {
|
||||
return false;
|
||||
}
|
||||
return $_SESSION['UNIT'][$cuid]['data'][$data_key];
|
||||
return $_SESSION['LOGIN_UNIT'][$cuid]['data'][$data_key];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3026,10 +3031,10 @@ HTML;
|
||||
*/
|
||||
public function loginGetEditAccessIdFromUid(string $uid): int|false
|
||||
{
|
||||
if (!isset($_SESSION['UNIT_UID'][$uid])) {
|
||||
if (!isset($_SESSION['LOGIN_UNIT_UID'][$uid])) {
|
||||
return false;
|
||||
}
|
||||
return (int)$_SESSION['UNIT_UID'][$uid];
|
||||
return (int)$_SESSION['LOGIN_UNIT_UID'][$uid];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3040,10 +3045,10 @@ HTML;
|
||||
*/
|
||||
public function loginGetEditAccessCuidFromUid(string $uid): int|false
|
||||
{
|
||||
if (!isset($_SESSION['UNIT_CUID'][$uid])) {
|
||||
if (!isset($_SESSION['LOGIN_UNIT_CUID'][$uid])) {
|
||||
return false;
|
||||
}
|
||||
return (int)$_SESSION['UNIT_CUID'][$uid];
|
||||
return (int)$_SESSION['LOGIN_UNIT_CUID'][$uid];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user