1
0
mirror of https://github.com/e107inc/e107.git synced 2025-01-17 12:48:24 +01:00

480 Commits

Author SHA1 Message Date
camer0n
34ba78023c Closes #4969, Fixes #5008, Fixes #4498 - FontAwesome6 support. 2023-11-17 11:18:23 -08:00
camer0n
da024d8a8d Remove test path 2023-11-13 13:24:30 -08:00
camer0n
75eb350c69 date tests. 2023-11-13 09:01:41 -08:00
camer0n
bfb515f2b5 Fixes #5096 - Cron timezone issue. eShims::strftime issue. CronParser test added. 2023-11-03 15:07:41 -07:00
camer0n
f037d6e688 Issue #5079 - Avoid division by zero. 2023-11-01 10:43:54 -07:00
camer0n
faa2f8ad34 Fixes #5093 - True/False labels on <select> options. 2023-11-01 08:07:30 -07:00
camer0n
fb98771b82 Fixes #5092 - Removed example code with error and added new example. Minor cleanup of class. 2023-10-31 12:34:28 -07:00
camer0n
6d632320a6 Issue #5079 PHP Warning. 2023-10-30 07:28:14 -07:00
camer0n
c419d402d7 Issue #4919 - Add support for quick custom email template without separate file. 2023-10-27 11:03:46 -07:00
camer0n
dd9c011fdd Closes #4804 - Conversion of diacritics in name2id() 2023-09-28 09:36:31 -07:00
camer0n
26f393b7ab Issue #5083 - Inline editor order fix for userclasses etc. 2023-09-25 10:07:48 -07:00
Nick Liu
dd36fbd51d
Unify logic of e_user_model::checkAdminPerms() and getperms()
Along with extensive documentation, `getperms()` is now deprecated and
its replacements now have first-class support:
* `e_user_model::checkAdminPerms()` and `getperms()` both use
  `e_userperms::simulateHasAdminPerms()`.
* `e_user_model::checkPluginAdminPerms()` and `getperms('P', …, …)`
  both use `e_userperms::simulateHasPluginAdminPerms()`.

----

Partially reverts: https://github.com/e107inc/e107/commit/44526b43

Reverts: https://github.com/e107inc/e107/commit/001799cb

Fixes: https://github.com/e107inc/e107/issues/5064
2023-09-09 12:03:14 +02:00
camer0n
44526b435c Issue #5064 - Draft fix for user impersonation (getperms()) 2023-09-08 14:18:06 -07:00
camer0n
9aa8de4f7d Issue GHSA-92fr-7h4f-22pp 2023-08-22 13:28:10 -07:00
camer0n
9949a297f6 HybridAuth upgrade v3.9.0 => v3.10.0 2023-08-22 12:10:30 -07:00
Nick Liu
b623868756
db_verify::getIndex(): Support index_col_name optional parts
In the MariaDB `CREATE TABLE` [`index_definition`](https://mariadb.com/kb/en/create-table/#index-definitions),
 the `index_col_name` could have an optional length and a sort order:

```
index_definition:
    {INDEX|KEY} [index_name] [index_type] (index_col_name,...) [index_option] ...
  {{{|}}} {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...) [index_option] ...
  {{{|}}} [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) [index_option] ...
  {{{|}}} [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) [index_option] ...
  {{{|}}} [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition

index_col_name:
    col_name [(length)] [ASC | DESC]

index_type:
    USING {BTREE | HASH | RTREE}

index_option:
    [ KEY_BLOCK_SIZE [=] value
  {{{|}}} index_type
  {{{|}}} WITH PARSER parser_name
  {{{|}}} COMMENT 'string'
  {{{|}}} CLUSTERING={YES| NO} ]
  [ IGNORED | NOT IGNORED ]

reference_definition:
    REFERENCES tbl_name (index_col_name,...)
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION
```

`db_verify::getIndex()` didn't handle this possibility, leading to a
database validity check failure despite the index actually existing.

Fixes: https://github.com/e107inc/e107/issues/5054
2023-08-17 17:27:26 +02:00
Nick Liu
3c571a884e
#5060: [PHP 8.3] Fix get_class() deprecations
Fixes: https://github.com/e107inc/e107/pull/5060
2023-08-14 18:05:02 +02:00
Nick Liu
b893cba9b6
CI: Fix acceptance test setup failure
Should fix this SaltStack error:

```
[ERROR   ] Command '/opt/saltstack/salt/salt-pip' failed with return code: 1
[ERROR   ] stdout: Collecting mysqlclient
  Downloading mysqlclient-2.2.0.tar.gz (89 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.5/89.5 kB 10.5 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
[ERROR   ] stderr:   error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      /bin/sh: 1: pkg-config: not found
      /bin/sh: 1: pkg-config: not found
      Trying pkg-config --exists mysqlclient
      Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
      Trying pkg-config --exists mariadb
      Command 'pkg-config --exists mariadb' returned non-zero exit status 127.
      Traceback (most recent call last):
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 351, in <module>
          main()
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 333, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 323, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 338, in run_setup
          exec(code, locals())
        File "<string>", line 154, in <module>
        File "<string>", line 48, in get_config_posix
        File "<string>", line 27, in find_package_name
      Exception: Can not find valid pkg-config name.
      Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
[ERROR   ] retcode: 1
[ERROR   ] Failed to install packages: mysqlclient. Error: Collecting mysqlclient
  Downloading mysqlclient-2.2.0.tar.gz (89 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.5/89.5 kB 10.5 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'   error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      /bin/sh: 1: pkg-config: not found
      /bin/sh: 1: pkg-config: not found
      Trying pkg-config --exists mysqlclient
      Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
      Trying pkg-config --exists mariadb
      Command 'pkg-config --exists mariadb' returned non-zero exit status 127.
      Traceback (most recent call last):
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 351, in <module>
          main()
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 333, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 323, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-8d1ymhy3/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 338, in run_setup
          exec(code, locals())
        File "<string>", line 154, in <module>
        File "<string>", line 48, in get_config_posix
        File "<string>", line 27, in find_package_name
      Exception: Can not find valid pkg-config name.
      Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
[ERROR   ] State 'mysql_user.present' was not found in SLS 'e107-dev'
Reason: 'mysql_user' __virtual__ returned False: mysql module could not be loaded

[ERROR   ] State 'mysql_user.present' was not found in SLS 'e107-dev'
Reason: 'mysql_user' __virtual__ returned False: mysql module could not be loaded

[ERROR   ] State 'mysql_database.present' was not found in SLS 'e107-dev'
Reason: 'mysql_database' __virtual__ returned False: mysql module could not be loaded
```
2023-06-22 20:46:10 -05:00
camer0n
4cc9d8b085 Updated vendor packages:
hybridauth/hybridauth (v3.8.2 => v3.9.0)
ifsnop/mysqldump-php (v2.9 => v2.12)
guzzlehttp/psr7 (1.9.0 => 1.9.1)
matthiasmullie/minify (1.3.70 => 1.3.71)
phpmailer/phpmailer (v6.7.1 => v6.8.0)
2023-06-22 09:47:35 -07:00
Cameron
c2bc635774 Fixes #5005 GET values containing arrays are no longer corrupted. 2023-06-06 15:46:50 -07:00
dependabot[bot]
50bbc0018a
Bump guzzlehttp/psr7 from 2.4.3 to 2.5.0 in /e107_tests
Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 2.4.3 to 2.5.0.
- [Release notes](https://github.com/guzzle/psr7/releases)
- [Changelog](https://github.com/guzzle/psr7/blob/2.5/CHANGELOG.md)
- [Commits](https://github.com/guzzle/psr7/compare/2.4.3...2.5.0)

---
updated-dependencies:
- dependency-name: guzzlehttp/psr7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-19 20:45:04 +00:00
Cameron
c3517641e0 Fontawesome updated to 5.15.4
Bootswatch updated to 5.2.3 in Bootstrap5 theme and fontawesome loading switched to css. (instead of js)
2023-04-12 15:32:48 -07:00
Nick Liu
1d1f4d08e0
Add tests for news plugin category links 2023-02-20 12:13:34 +01:00
Nick Liu
432395c12e
Tests: Helper\E107Base: Use more reliable check for Composer 2 format
Issue reported in Gitter:
https://matrix.to/#/!srhnCKlMgxFeuSPXPb:gitter.im/$nGHXf-miT7JsA2U-Mgr7_SDuINfSYjuHulMgfuvPNdg?via=gitter.im

Tester reported this error:

```
In E107Base.php line 103:

  First parameter must either be an object or the name of an existing class
```
2023-02-16 15:57:20 +01:00
Cameron
f5096ae47d Closes #4978 - {NEWS_MODIFIED} shortcode added. 2023-02-11 09:09:16 -08:00
Cameron
d320ee926e Issue #4969 Added support for FontAwesome v6 2023-02-05 13:48:50 -08:00
Nick Liu
ada4ed13be
Tests: Rework acceptance tests to set up LAMP at testing time
We may be able to test different operating systems this way.
2022-12-07 21:18:41 -06:00
Cameron
3b41b8a9d1 Fix for deprecation notices when running tests on PHP 8.2. Upgraded Conception to 4.2.2 2023-01-08 08:46:17 -08:00
Nick Liu
eba3a9a367
Tests: e107EmailTest::testMsgHTML(): Enforce SMTP-style line endings
On older PHP versions, the line ending seems to be indeterminate?

Changing the test mailer from "mail" to "smtp" should enforce CRLF
line endings instead of maybe CRLF, maybe LF.
2022-12-29 22:21:09 +01:00
Nick Liu
43792c4505
Tests: Fix "September" behavior difference in testBuildDateLocale()
Whether "Sep" or "Sept" is the short month name for "%h" apparently
depends on `DateTime` or ext-intl, not on whether Microsoft Windows is
used.  Or something like that.  PHP is weird…
2022-12-29 21:55:12 +01:00
Nick Liu
9abac0970b
Tests: Correct Codeception method signature in \Helper\Base::_before() 2022-12-29 16:54:11 +01:00
Cameron
bc6d371942 Closes #4924 - sendEmail() updated. 2022-12-15 22:11:05 -08:00
Cameron
5f84a8253e Vendor folder upgrades:
- Upgrading hybridauth/hybridauth (v3.8.0 => v3.8.2)
- Upgrading guzzlehttp/psr7 (1.8.5 => 1.9.0)
- Upgrading matthiasmullie/minify (1.3.68 => 1.3.70)
- Upgrading phpmailer/phpmailer (v6.6.0 => v6.7.1)
2022-12-15 20:46:33 -08:00
Cameron
78d4809d15 Closes #4922 - Option for plugins to extend notification routing. 2022-12-13 18:30:12 -08:00
Cameron
05b1b040c8 Closes #4922 - Option for plugins to extend notification routing. 2022-12-13 18:23:48 -08:00
Cameron
d12d3f1333 Closes #3701 Plugin builder class moved to its own file. Default plugin icons are now created if an images/ folder is not found. Simple test added for detecting PHP notices etc. Some cleanup of generated code. 2022-12-12 15:00:30 -08:00
Cameron
93a05dc777 Closes #4919 - Enhancement: plugins may now use their own custom email templates with sendEmail(); 2022-12-10 08:47:01 -08:00
Nick Liu
ae3c57a5b4
Tests: MDEV-29446 workaround: Ignore COLLATE clause in SHOW CREATE TABLE
https://jira.mariadb.org/browse/MDEV-29446 changes the output of
`SHOW CREATE TABLE`, which MySQL and MariaDB 10.2 and older do not do.

To tolerate the new behavior, this change strips the `COLLATE` clause
from the `SHOW CREATE TABLE` output to ignore it.

Fixes: https://github.com/e107inc/e107/issues/4912
2022-11-30 17:57:48 -06:00
dependabot[bot]
d346a82b80
Bump twig/twig from 3.4.1 to 3.4.3 in /e107_tests
Bumps [twig/twig](https://github.com/twigphp/Twig) from 3.4.1 to 3.4.3.
- [Release notes](https://github.com/twigphp/Twig/releases)
- [Changelog](https://github.com/twigphp/Twig/blob/3.x/CHANGELOG)
- [Commits](https://github.com/twigphp/Twig/compare/v3.4.1...v3.4.3)

---
updated-dependencies:
- dependency-name: twig/twig
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-30 20:31:31 +00:00
Nick Liu
00b1d754b0
Login flow consistency: Do not use redirect in admin area login box
The non-admin login flow does not perform a redirect, but the admin
login flow did. This led to an inconsistency in how the authentication
error message was passed.

Fixes: https://github.com/e107inc/e107/issues/4779
2022-09-07 12:32:02 -05:00
Cameron
a181afcbd8 Issue #4826 Corrected static redirection. 2022-07-26 12:35:06 -07:00
Cameron
c4bcf0a663 Fixes #4826 - redirect dynamic content on static domain. 2022-07-19 16:32:33 -07:00
dependabot[bot]
e9d48cd78d
Bump guzzlehttp/guzzle from 7.4.4 to 7.4.5 in /e107_tests
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.4 to 7.4.5.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.4...7.4.5)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 21:03:18 +00:00
dependabot[bot]
12c086eeaa
Bump guzzlehttp/guzzle from 7.4.3 to 7.4.4 in /e107_tests
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.4.3...7.4.4)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 06:53:35 +00:00
Cameron
8bf3481eaf Added e107::getEvent()->triggered() for manually checking if an event has already been triggered. 2022-06-07 12:33:50 -07:00
Cameron
5ddc27766d Composer update 2022-05-29 12:08:49 -07:00
Cameron
8ec6e3a0dd Addition linkwords test. 2022-05-29 11:18:24 -07:00
Cameron
903f51561f Fixes #4766 User-audit login event data. 2022-05-10 10:21:05 -07:00
Cameron
4d6a5ea310 Fixes #4758 Admin-UI hidden field $parms were not being applied. 2022-04-19 07:15:23 -07:00
Cameron
f8b04b64d4 Fixes #4751 - Form tabs issue. Test added. 2022-04-07 13:11:56 -07:00