Skip to content

Tags: Ali7Zeynalli/S-RCS

Tags

v1.3.4

Toggle v1.3.4's commit message
Release v1.3.4: Fix GPO page hanging on loading spinner

The Group Policy page would hang on the loading spinner indefinitely on
many domains. Root cause analysis identified four issues, all fixed in
api/gpo.php. Pure bug fix, fully backward-compatible.

Root causes (all fixed)

1. Binary AD attributes broke json_encode(). gPCMachineExtensionNames
   and gPCUserExtensionNames are stored as binary octet strings in
   Active Directory. PHP's json_encode() returns false on invalid
   UTF-8, producing an empty response body. Added
   JSON_INVALID_UTF8_SUBSTITUTE | JSON_UNESCAPED_UNICODE flags.

2. ob_clean() without ob_start() leaked a PHP notice into the JSON
   response. The notice prefixed the JSON, frontend JSON.parse() failed
   silently inside the catch handler. Replaced with proper
   ob_start() / ob_end_clean() pattern matching the rest of the API
   endpoints.

3. No display_errors suppression. Set ini_set('display_errors', '0') +
   error_reporting(E_ALL) so errors still log via error_log() but never
   leak into the JSON response.

4. No LDAP timeouts. ldap_search() could hang past PHP's 30s
   max_execution_time when the LDAP server was slow or unreachable.
   Added LDAP_OPT_NETWORK_TIMEOUT=10 and LDAP_OPT_TIMELIMIT=20.

Performance impact

  Small domains (< 100 GPOs)     1-3s (was: hung forever)
  Large domains (1000+ GPOs)     5-15s with proper error feedback
  Very large (5000+ OUs)         may approach 20s, future cache release

Documentation and notification

- VERSION bumped 1.3.3 -> 1.3.4
- CHANGELOG.md  : v1.3.4 entry with root-cause breakdown
- CHANGELOG_AZ.md : back-filled from v1.3.0 to v1.3.4 (was 4 versions
  behind — v1.3.1, v1.3.2, v1.3.3, v1.3.4 all translated to Azerbaijani)
- README.md / README_AZ.md : "What's New in v1.3.4" callout
- notifications.json : new entry id=6, priority=3 (Critical), category
  security_alerts. Appears in the in-app notifications page within the
  10-minute cache TTL after pushed to GitHub.
- Footer UPDATE badge will detect the version automatically (24h cycle)

Affected files

  www/api/gpo.php           single endpoint, frontend untouched
  www/VERSION
  CHANGELOG.md
  CHANGELOG_AZ.md
  README.md
  README_AZ.md
  notifications.json

v1.3.3

Toggle v1.3.3's commit message
notifications

v1.3.0

Toggle v1.3.0's commit message
docker duzlisler installer elaveler