Compare commits
7 Commits
v9.26.7
...
5e21ead6fa
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e21ead6fa | ||
|
|
07fbd13213 | ||
|
|
44b825310a | ||
|
|
2c234ccef6 | ||
|
|
b493b3c4fd | ||
|
|
e7dd96b5d9 | ||
|
|
bcde36ac17 |
43
.eslintrc.js
43
.eslintrc.js
@@ -1,43 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
'env': {
|
|
||||||
'browser': true,
|
|
||||||
'es6': true,
|
|
||||||
'commonjs': true,
|
|
||||||
'jquery': true
|
|
||||||
},
|
|
||||||
'extends': 'eslint:recommended',
|
|
||||||
'parserOptions': {
|
|
||||||
'ecmaVersion': 6
|
|
||||||
},
|
|
||||||
'rules': {
|
|
||||||
'indent': [
|
|
||||||
'error',
|
|
||||||
'tab',
|
|
||||||
{
|
|
||||||
'SwitchCase': 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'linebreak-style': [
|
|
||||||
'error',
|
|
||||||
'unix'
|
|
||||||
],
|
|
||||||
'quotes': [
|
|
||||||
'error',
|
|
||||||
'single'
|
|
||||||
],
|
|
||||||
'semi': [
|
|
||||||
'error',
|
|
||||||
'always'
|
|
||||||
],
|
|
||||||
'no-console': 'off',
|
|
||||||
'no-unused-vars': [
|
|
||||||
'error', {
|
|
||||||
'vars': 'all',
|
|
||||||
'args': 'after-used',
|
|
||||||
'ignoreRestSiblings': false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
// Requires eslint >= v8.14.0
|
|
||||||
'no-constant-binary-expression': 'error'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -48,7 +48,7 @@ header("Content-Type: application/json; charset=UTF-8");
|
|||||||
if (!empty($http_headers['HTTP_AUTHORIZATION']) && !empty($http_headers['HTTP_RUNAUTHTEST'])) {
|
if (!empty($http_headers['HTTP_AUTHORIZATION']) && !empty($http_headers['HTTP_RUNAUTHTEST'])) {
|
||||||
header("HTTP/1.1 401 Unauthorized");
|
header("HTTP/1.1 401 Unauthorized");
|
||||||
print buildContent($http_headers, '{"code": 401, "content": {"Error": "Not Authorized"}}');
|
print buildContent($http_headers, '{"code": 401, "content": {"Error": "Not Authorized"}}');
|
||||||
exit;
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if server request type is get set file_get to null -> no body
|
// if server request type is get set file_get to null -> no body
|
||||||
@@ -57,7 +57,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||||||
} elseif (($file_get = file_get_contents('php://input')) === false) {
|
} elseif (($file_get = file_get_contents('php://input')) === false) {
|
||||||
header("HTTP/1.1 404 Not Found");
|
header("HTTP/1.1 404 Not Found");
|
||||||
print buildContent($http_headers, '{"code": 404, "content": {"Error": "file_get_contents failed"}}');
|
print buildContent($http_headers, '{"code": 404, "content": {"Error": "file_get_contents failed"}}');
|
||||||
exit;
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
print buildContent($http_headers, $file_get);
|
print buildContent($http_headers, $file_get);
|
||||||
|
|||||||
@@ -969,44 +969,76 @@ final class CoreLibsUrlRequestsCurlTest extends TestCase
|
|||||||
"query" => ["foo-get" => "bar"]
|
"query" => ["foo-get" => "bar"]
|
||||||
]);
|
]);
|
||||||
$this->assertEquals("200", $response["code"], "multi call: get response code not matching");
|
$this->assertEquals("200", $response["code"], "multi call: get response code not matching");
|
||||||
$this->assertEquals(
|
if (PHP_VERSION_ID >= 80400) {
|
||||||
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
$this->assertEquals(
|
||||||
. '"HTTP_FIRST_CALL":"get","HTTP_ACCEPT":"*\/*",'
|
'{"HEADERS":{"HTTP_HOST":"soba.egplusww.jp",'
|
||||||
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
. '"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1","HTTP_FIRST_CALL":"get",'
|
||||||
. '"REQUEST_TYPE":"GET",'
|
. '"HTTP_ACCEPT":"*\/*"},"REQUEST_TYPE":"GET","PARAMS":{"foo-get":"bar"},"BODY":null}',
|
||||||
. '"PARAMS":{"foo-get":"bar"},"BODY":null}',
|
$response['content'],
|
||||||
$response['content'],
|
'multi call: get content not matching'
|
||||||
'multi call: get content not matching'
|
);
|
||||||
);
|
} else {
|
||||||
|
$this->assertEquals(
|
||||||
|
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
||||||
|
. '"HTTP_FIRST_CALL":"get","HTTP_ACCEPT":"*\/*",'
|
||||||
|
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
||||||
|
. '"REQUEST_TYPE":"GET",'
|
||||||
|
. '"PARAMS":{"foo-get":"bar"},"BODY":null}',
|
||||||
|
$response['content'],
|
||||||
|
'multi call: get content not matching'
|
||||||
|
);
|
||||||
|
}
|
||||||
// post
|
// post
|
||||||
$response = $curl->post($this->url_basic, [
|
$response = $curl->post($this->url_basic, [
|
||||||
"headers" => ["second-call" => "post"],
|
"headers" => ["second-call" => "post"],
|
||||||
"body" => ["foo-post" => "baz"]
|
"body" => ["foo-post" => "baz"]
|
||||||
]);
|
]);
|
||||||
$this->assertEquals("200", $response["code"], "multi call: post response code not matching");
|
$this->assertEquals("200", $response["code"], "multi call: post response code not matching");
|
||||||
$this->assertEquals(
|
if (PHP_VERSION_ID >= 80400) {
|
||||||
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
$this->assertEquals(
|
||||||
. '"HTTP_SECOND_CALL":"post","HTTP_ACCEPT":"*\/*",'
|
'{"HEADERS":{"HTTP_HOST":"soba.egplusww.jp",'
|
||||||
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
. '"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
||||||
. '"REQUEST_TYPE":"POST",'
|
. '"HTTP_SECOND_CALL":"post","HTTP_ACCEPT":"*\/*"},'
|
||||||
. '"PARAMS":[],"BODY":{"foo-post":"baz"}}',
|
. '"REQUEST_TYPE":"POST","PARAMS":[],"BODY":{"foo-post":"baz"}}',
|
||||||
$response['content'],
|
$response['content'],
|
||||||
'multi call: post content not matching'
|
'multi call: post content not matching'
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
$this->assertEquals(
|
||||||
|
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
||||||
|
. '"HTTP_SECOND_CALL":"post","HTTP_ACCEPT":"*\/*",'
|
||||||
|
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
||||||
|
. '"REQUEST_TYPE":"POST",'
|
||||||
|
. '"PARAMS":[],"BODY":{"foo-post":"baz"}}',
|
||||||
|
$response['content'],
|
||||||
|
'multi call: post content not matching'
|
||||||
|
);
|
||||||
|
}
|
||||||
// delete
|
// delete
|
||||||
$response = $curl->delete($this->url_basic, [
|
$response = $curl->delete($this->url_basic, [
|
||||||
"headers" => ["third-call" => "delete"],
|
"headers" => ["third-call" => "delete"],
|
||||||
]);
|
]);
|
||||||
$this->assertEquals("200", $response["code"], "multi call: delete response code not matching");
|
$this->assertEquals("200", $response["code"], "multi call: delete response code not matching");
|
||||||
$this->assertEquals(
|
if (PHP_VERSION_ID >= 80400) {
|
||||||
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
$this->assertEquals(
|
||||||
. '"HTTP_THIRD_CALL":"delete","HTTP_ACCEPT":"*\/*",'
|
'{"HEADERS":{"HTTP_HOST":"soba.egplusww.jp",'
|
||||||
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
. '"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
||||||
. '"REQUEST_TYPE":"DELETE",'
|
. '"HTTP_THIRD_CALL":"delete","HTTP_ACCEPT":"*\/*"},'
|
||||||
. '"PARAMS":[],"BODY":[]}',
|
. '"REQUEST_TYPE":"DELETE","PARAMS":[],"BODY":[]}',
|
||||||
$response['content'],
|
$response['content'],
|
||||||
'multi call: delete content not matching'
|
'multi call: delete content not matching'
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
$this->assertEquals(
|
||||||
|
'{"HEADERS":{"HTTP_USER_AGENT":"CoreLibsUrlRequestCurl\/1",'
|
||||||
|
. '"HTTP_THIRD_CALL":"delete","HTTP_ACCEPT":"*\/*",'
|
||||||
|
. '"HTTP_HOST":"soba.egplusww.jp"},'
|
||||||
|
. '"REQUEST_TYPE":"DELETE",'
|
||||||
|
. '"PARAMS":[],"BODY":[]}',
|
||||||
|
$response['content'],
|
||||||
|
'multi call: delete content not matching'
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: auth header set via config
|
// MARK: auth header set via config
|
||||||
|
|||||||
59
eslint.config.mjs
Normal file
59
eslint.config.mjs
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import globals from 'globals';
|
||||||
|
import pluginJs from '@eslint/js';
|
||||||
|
|
||||||
|
/*
|
||||||
|
module.exports = {
|
||||||
|
'env': {
|
||||||
|
'browser': true,
|
||||||
|
'es6': true,
|
||||||
|
'commonjs': true,
|
||||||
|
'jquery': true
|
||||||
|
},
|
||||||
|
'extends': 'eslint:recommended',
|
||||||
|
'parserOptions': {
|
||||||
|
'ecmaVersion': 6
|
||||||
|
},
|
||||||
|
// rules copied
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @type {import('eslint').Linter.Config[]} */
|
||||||
|
export default [
|
||||||
|
{languageOptions: { globals: globals.browser }},
|
||||||
|
pluginJs.configs.recommended,
|
||||||
|
{
|
||||||
|
'rules': {
|
||||||
|
'indent': [
|
||||||
|
'error',
|
||||||
|
'tab',
|
||||||
|
{
|
||||||
|
'SwitchCase': 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'linebreak-style': [
|
||||||
|
'error',
|
||||||
|
'unix'
|
||||||
|
],
|
||||||
|
// 'quotes': [
|
||||||
|
// 'error',
|
||||||
|
// 'single'
|
||||||
|
// ],
|
||||||
|
'semi': [
|
||||||
|
'error',
|
||||||
|
'always'
|
||||||
|
],
|
||||||
|
'no-console': 'off',
|
||||||
|
'no-unused-vars': [
|
||||||
|
'error', {
|
||||||
|
'vars': 'all',
|
||||||
|
'args': 'after-used',
|
||||||
|
'ignoreRestSiblings': false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// Requires eslint >= v8.14.0
|
||||||
|
'no-constant-binary-expression': 'error'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
// __END__
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
|
// https://www.typescriptlang.org/tsconfig/#compilerOptions
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"moduleResolution": "Node",
|
"moduleResolution": "Node",
|
||||||
"target": "ES2020",
|
"target": "ES2020",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
|
"checkJs": true,
|
||||||
"allowImportingTsExtensions": true,
|
"allowImportingTsExtensions": true,
|
||||||
"strictNullChecks": true,
|
"strictNullChecks": true,
|
||||||
"strictFunctionTypes": true
|
"strictFunctionTypes": true
|
||||||
|
|||||||
1567
package-lock.json
generated
Normal file
1567
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
17
package.json
Normal file
17
package.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "core-libraries",
|
||||||
|
"version": "9.26.8",
|
||||||
|
"main": "",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "Clemens Schwaighofer",
|
||||||
|
"license": "",
|
||||||
|
"description": "Core Libraries",
|
||||||
|
"devDependencies": {
|
||||||
|
"@eslint/js": "^9.20.0",
|
||||||
|
"esbuild": "^0.25.0",
|
||||||
|
"eslint": "^9.20.1",
|
||||||
|
"globals": "^15.15.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -52,7 +52,7 @@ header("Content-Type: application/json; charset=UTF-8");
|
|||||||
if (!empty($http_headers['HTTP_AUTHORIZATION']) && !empty($http_headers['HTTP_RUNAUTHTEST'])) {
|
if (!empty($http_headers['HTTP_AUTHORIZATION']) && !empty($http_headers['HTTP_RUNAUTHTEST'])) {
|
||||||
header("HTTP/1.1 401 Unauthorized");
|
header("HTTP/1.1 401 Unauthorized");
|
||||||
print buildContent($http_headers, '{"code": 401, "content": {"Error": "Not Authorized"}}');
|
print buildContent($http_headers, '{"code": 401, "content": {"Error": "Not Authorized"}}');
|
||||||
exit;
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if server request type is get set file_get to null -> no body
|
// if server request type is get set file_get to null -> no body
|
||||||
@@ -61,7 +61,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET") {
|
|||||||
} elseif (($file_get = file_get_contents('php://input')) === false) {
|
} elseif (($file_get = file_get_contents('php://input')) === false) {
|
||||||
header("HTTP/1.1 404 Not Found");
|
header("HTTP/1.1 404 Not Found");
|
||||||
print buildContent($http_headers, '{"code": 404, "content": {"Error": "file_get_contents failed"}}');
|
print buildContent($http_headers, '{"code": 404, "content": {"Error": "file_get_contents failed"}}');
|
||||||
exit;
|
exit(1);
|
||||||
}
|
}
|
||||||
// str_replace('\"', '"', trim($file_get, '"'));
|
// str_replace('\"', '"', trim($file_get, '"'));
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
/* general edit javascript */
|
/* general edit javascript */
|
||||||
/* jquery version */
|
/* jquery version */
|
||||||
|
|
||||||
/* jshint esversion: 11 */
|
|
||||||
|
|
||||||
/* global i18n */
|
/* global i18n */
|
||||||
|
|
||||||
// debug set
|
// debug set
|
||||||
@@ -533,22 +531,20 @@ function errorCatch(err)
|
|||||||
if (err.stack) {
|
if (err.stack) {
|
||||||
// only FF
|
// only FF
|
||||||
if (err.lineNumber) {
|
if (err.lineNumber) {
|
||||||
console.log('ERROR[%s:%s] %s', err.name, err.lineNumber, err.message);
|
console.error('ERROR[%s:%s] ', err.name, err.lineNumber, err);
|
||||||
} else if (err.line) {
|
} else if (err.line) {
|
||||||
// only Safari
|
// only Safari
|
||||||
console.log('ERROR[%s:%s] %s', err.name, err.line, err.message);
|
console.error('ERROR[%s:%s] ', err.name, err.line, err);
|
||||||
} else {
|
} else {
|
||||||
console.log('ERROR[%s] %s', err.name, err.message);
|
console.error('ERROR[%s] ', err.name, err);
|
||||||
}
|
}
|
||||||
// stack trace
|
|
||||||
console.log('ERROR[stack] %s', err.stack);
|
|
||||||
} else if (err.number) {
|
} else if (err.number) {
|
||||||
// IE
|
// IE
|
||||||
console.log('ERROR[%s:%s] %s', err.name, err.number, err.message);
|
console.error('ERROR[%s:%s] %s', err.name, err.number, err.message);
|
||||||
console.log('ERROR[description] %s', err.description);
|
console.error('ERROR[description] %s', err.description);
|
||||||
} else {
|
} else {
|
||||||
// the rest
|
// the rest
|
||||||
console.log('ERROR[%s] %s', err.name, err.message);
|
console.error('ERROR[%s] %s', err.name, err.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -183,8 +183,9 @@ if (file_exists(BASE . CONFIGS . 'config.path.php')) {
|
|||||||
define('HOST_NAME', $HOST_NAME);
|
define('HOST_NAME', $HOST_NAME);
|
||||||
// BAIL ON MISSING MASTER SITE CONFIG
|
// BAIL ON MISSING MASTER SITE CONFIG
|
||||||
if (!isset($SITE_CONFIG[HOST_NAME]['location'])) {
|
if (!isset($SITE_CONFIG[HOST_NAME]['location'])) {
|
||||||
echo 'Missing SITE_CONFIG entry for: "' . HOST_NAME . '". Contact Administrator';
|
throw new \InvalidArgumentException(
|
||||||
exit;
|
'Missing SITE_CONFIG entry for: "' . HOST_NAME . '". Contact Administrator'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// BAIL ON MISSING DB CONFIG:
|
// BAIL ON MISSING DB CONFIG:
|
||||||
// we have either no db selction for this host but have db config entries
|
// we have either no db selction for this host but have db config entries
|
||||||
@@ -200,8 +201,9 @@ if (
|
|||||||
empty($DB_CONFIG[$SITE_CONFIG[HOST_NAME]['db_host']]))
|
empty($DB_CONFIG[$SITE_CONFIG[HOST_NAME]['db_host']]))
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
echo 'No matching DB config found for: "' . HOST_NAME . '". Contact Administrator';
|
throw new \InvalidArgumentException(
|
||||||
exit;
|
'No matching DB config found for: "' . HOST_NAME . '". Contact Administrator'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// set SSL on
|
// set SSL on
|
||||||
$is_secure = false;
|
$is_secure = false;
|
||||||
|
|||||||
@@ -1560,6 +1560,7 @@ class Login
|
|||||||
'uid' => $unit['uid'],
|
'uid' => $unit['uid'],
|
||||||
'cuuid' => $unit['cuuid'],
|
'cuuid' => $unit['cuuid'],
|
||||||
'level' => $this->default_acl_list[$this->acl['unit'][$ea_cuid]]['name'] ?? -1,
|
'level' => $this->default_acl_list[$this->acl['unit'][$ea_cuid]]['name'] ?? -1,
|
||||||
|
'level_number' => $this->acl['unit'][$ea_cuid],
|
||||||
'default' => $unit['default'],
|
'default' => $unit['default'],
|
||||||
'data' => $unit['data'],
|
'data' => $unit['data'],
|
||||||
'additional_acl' => $unit['additional_acl']
|
'additional_acl' => $unit['additional_acl']
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ class EditBase
|
|||||||
);
|
);
|
||||||
if ($this->form->mobile_phone) {
|
if ($this->form->mobile_phone) {
|
||||||
echo "I am sorry, but this page cannot be viewed by a mobile phone";
|
echo "I am sorry, but this page cannot be viewed by a mobile phone";
|
||||||
exit;
|
exit(1);
|
||||||
}
|
}
|
||||||
// $this->log->debug('POST', $this->log->prAr($_POST));
|
// $this->log->debug('POST', $this->log->prAr($_POST));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ class IO
|
|||||||
die('<!-- Cannot load db functions class for: ' . $this->db_type . ' -->');
|
die('<!-- Cannot load db functions class for: ' . $this->db_type . ' -->');
|
||||||
}
|
}
|
||||||
// write to internal one, once OK
|
// write to internal one, once OK
|
||||||
$this->db_functions = $db_functions;
|
$this->db_functions = $db_functions; /** @phan-suppress-current-line PhanPossiblyNullTypeMismatchProperty */
|
||||||
|
|
||||||
// connect to DB
|
// connect to DB
|
||||||
if (!$this->__connectToDB()) {
|
if (!$this->__connectToDB()) {
|
||||||
@@ -2946,7 +2946,7 @@ class IO
|
|||||||
$query_hash = $this->dbGetQueryHash($query, $params);
|
$query_hash = $this->dbGetQueryHash($query, $params);
|
||||||
// clears cache for this query
|
// clears cache for this query
|
||||||
if (empty($this->cursor_ext[$query_hash]['query'])) {
|
if (empty($this->cursor_ext[$query_hash]['query'])) {
|
||||||
$this->__dbError(18, context: [
|
$this->__dbWarning(18, context: [
|
||||||
'query' => $query,
|
'query' => $query,
|
||||||
'params' => $params,
|
'params' => $params,
|
||||||
'hash' => $query_hash,
|
'hash' => $query_hash,
|
||||||
|
|||||||
Reference in New Issue
Block a user