Журнал изменений

Журнал изменений

Фильтр и поиск

Всего: 1091 Доступных коммитов | Отфильтровано: 1091 Коммиты | Страница: 25 / 110
03.06.2026
Chore: enable captcha and security logging defaults
Автор: Eduard Laas | Дата: 13:46 03.06.2026

Turn on the ALTCHA captcha and the database-backup and dynamic error logs in the shipped security configuration.

Core changes:

  1. Security config (config/security.php):
  2. captcha.active 0 -> 1 (enable the ALTCHA captcha)
  3. log_b 0 -> 1 (database backup log)
  4. log_d 0 -> 1 (dynamic error log)

Benefits:

  • Spam protection and operational logging are on by default

Technical notes:

  • No secret is committed; the security secret stays empty in the tracked config
Docs: note ALTCHA CSP behavior in the security help
Автор: Eduard Laas | Дата: 13:43 03.06.2026

Explain in the security admin help that the captcha proof-of-work worker is self-hosted (same-origin), so it works under a strict CSP without blob:.

Core changes:

  1. Security help (admin/info/security/ru.md):
  2. Add a note that the PoW worker loads from the site origin (plugins/altcha/altcha-sha.js), so default-src 'self' is enough

  3. Mention that an explicit worker-src directive must include 'self'

Benefits:

  • Admins find the captcha CSP behavior documented in-product

Technical notes:

  • Russian help file; code samples and identifiers stay in English
Fix: run ALTCHA proof-of-work in a self-hosted worker (CSP-safe, no blob)
Автор: Eduard Laas | Дата: 13:43 03.06.2026

Switch the captcha to the ALTCHA external widget build so the proof-of-work runs in a self-hosted same-origin Worker instead of a blob: Worker. This makes the captcha work under a strict Content-Security-Policy (default-src 'self') out of the box, with no per-site CSP change required.

Core changes:

  1. Vendored ALTCHA assets (plugins/altcha/):
  2. Replace the bundled build with the external build altcha.min.js (no blob worker)
  3. Add altcha-sha.js (official SHA-256 PoW worker) and altcha.css

    • Files taken verbatim from altcha@3.0.11 dist (external + workers/sha)
  4. Bootstrap (plugins/altcha/altcha-init.js):
  5. Import the external build and register the SHA-256 worker through $altcha.algorithms.set(...) with a same-origin worker URL

  6. Load altcha.css once and register localized strings via $altcha.i18n
  7. Provider (core/classes/captcha.php):
  8. Document the external-build / self-hosted-worker contract

Benefits:

  • Captcha works under strict CSP on every installation without server changes
  • No blob: workers; proof-of-work stays same-origin

Technical notes:

  • Verified in a real browser under the production CSP (default-src 'self' ...): verified state, same-origin worker, zero CSP violations

  • Backward compatible with the existing SHA-256 challenge/verify (HMAC) logic
Chore: enable the sitemap scheduler job
Автор: Eduard Laas | Дата: 12:37 03.06.2026

Activate the built-in sitemap job (active 0 -> 1); no secret involved.

Fix: adapt ALTCHA captcha to widget v3 and localize it
Автор: Eduard Laas | Дата: 12:37 03.06.2026

The vendored ALTCHA widget is v3.0.11, whose API differs from the previous integration: it reads the challenge attribute (not challengeurl), hides footer/logo via configuration, and ignores a strings attribute. The old markup made the widget fetch the page itself and fail with "Verification failed". This restores verification and adds full localization.

Core changes:

  1. Widget contract (templates/{lite,admin}/fragments/captcha-altcha.html):
  2. Use challenge, language and configuration (hideFooter/hideLogo)
  3. Add an inert JSON island with the localized strings (CSP-safe)
  4. Localized bootstrap (plugins/altcha/altcha-init.js, new):
  5. Imports the widget and registers strings via the $altcha.i18n global before first render, since v3 ships English only

  6. Provider (core/classes/captcha.php):
  7. Pass lang_code from the active $locale (not the default $conf language), strings_json (JSON_HEX_TAG) and the configuration attribute

  8. Document the version-sensitive v3 contract
  9. Strings (lang/*.php): add _CAPTCHA_LOADING/REQUIRED/WAIT in all six languages for complete widget coverage

Verified in a real browser on the registration and admin-login pages, in Russian and after switching to German.

Fix: render registration password hint as HTML
Автор: Eduard Laas | Дата: 12:36 03.06.2026

The password and repeat-password rows passed getTplTitleTip()._PASSWORD through the escaped label key, so the tooltip markup showed as literal text. Use label_html so the hint renders, matching the admin form.

Docs: translate class-candidates analysis to Russian
Автор: Eduard Laas | Дата: 12:36 03.06.2026

Mirror the refactor analysis in Russian (identifiers and code stay English per project rules) so it matches the team's working language.

Fix: harden scheduler runtime and sitemap/backup tasks
Автор: Eduard Laas | Дата: 10:56 03.06.2026

Self-heals stale scheduler configs and surfaces real run results, and fixes two task-level bugs that made jobs fail silently or report wrong metadata.

Core changes:

  1. Scheduler job normalization (core/system.php):
  2. Add getSchedulerJob() as the single read/normalize accessor

    • Enforces canonical type/system for built-in jobs (dbbackup, filescan,
newsletter, sitemap) and drops the legacy 'handler' key
  • Replaces raw $conf['scheduler']['jobs'][...] reads in lock/due/run paths
  • A pre-refactor config (empty 'system', legacy 'handler') no longer makes every system job exit early as 'idle'

  • Manual run feedback (admin/modules/scheduler.php):
  • run() now reports the actual addSchedulerRun() status/message instead of always showing success, so disabled/locked/idle/failed are visible

  • save() derives built-in jobs via getSchedulerJob() and normalizes every job before writing, so a stale schema cannot survive a save

  • Sitemap task (core/system.php):
  • Initialize $info/$htm/$cd before use; count($info) on an undefined value threw a TypeError on PHP 8 when no module produced data

  • Backup task (core/system.php):
  • Resolve the produced archive by actual extension (.zip/.gz/.bz2) instead of a hardcoded .sql.gz, fixing wrong last_backup_file/size metadata

Benefits:

  • Production jobs run regardless of a drifted config; no more silent no-ops
  • Failures become visible in the admin UI

Technical notes:

  • No schema migration shim; normalization is applied at read and write
  • Behavior unchanged when the config is already in the current schema
Fix: skip non-directory entries in module scan
Автор: Eduard Laas | Дата: 10:55 03.06.2026

scandir('modules') also returns files (.htaccess, index.html); probing 'modules/<file>/index.php' tripped open_basedir warnings on production. Guard the file_exists() checks with is_dir() since modules are always directories.

Docs: add class-candidates refactor analysis
Автор: Eduard Laas | Дата: 10:55 03.06.2026

Records which procedural core subsystems would benefit more from class encapsulation than the (stateless) scheduler family, ranked by state/resource coupling, with explicit non-candidates and per-rule refactor constraints.

Всего: 1091 на 110 страницах по 10 на каждой странице

1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 110
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код