Skip to content

fix: sensitive toggle on Controller fails with TypeError (metadata-only PUT)#91

Merged
kennethphough merged 1 commit into
masterfrom
fix/controller-sensitive-toggle
May 28, 2026
Merged

fix: sensitive toggle on Controller fails with TypeError (metadata-only PUT)#91
kennethphough merged 1 commit into
masterfrom
fix/controller-sensitive-toggle

Conversation

@kennethphough

Copy link
Copy Markdown
Member

Summary

Completes the 4.5.1 fix for the third meta-controller. Toggling sensitive=1 on a Controller returned 200-empty + "Save failed."

validateControllerUpdate early-returned only on $o->name === $r['name']. A {sensitive:1} PUT omits name"SomeController" === null is false → fell through → checkNameExistsInScope(string $name) got nullTypeError → swallowed by the exception handler (logged as KyteError, hence empty 200) → save aborted.

Fix: if (!isset($r['name']) || $o->name === $r['name']) return;

Confirmed on ORB via DEBUG_SQL: PUT Controller id=46 {sensitive:1} logged exactly this TypeError at ControllerController.php:70.

Test plan

  • Deploy to ORB; toggle Controller sensitive → "Saved", DB sensitive=1, non-empty response
  • Name-change path unaffected (still sends name)

Target v4.5.2. No schema change.

🤖 Generated with Claude Code

…r on metadata-only PUT

Third meta-controller sibling of the 4.5.1 DataModel/ModelAttribute
fix. Toggling sensitive=1 on a Controller returned 200 empty + "Save
failed."

ControllerController::validateControllerUpdate early-returns only when
$o->name === $r['name']. A metadata-only PUT of {sensitive:1} omits
name, so $r['name'] is null; "SomeController" === null is false, so it
fell through and passed null into the typed
checkNameExistsInScope(string $name) -> TypeError -> swallowed by the
global exception handler (logged as KyteError, hence the empty 200) ->
update aborted before sensitive persisted.

Fix: return early when name is absent —
if (!isset($r['name']) || $o->name === $r['name']). The name-change
path (always sends name) is unaffected.

Confirmed via DEBUG_SQL on ORB: PUT Controller id=46 {sensitive:1}
logged exactly this TypeError at ControllerController.php:70.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@kennethphough
kennethphough merged commit e5c4a64 into master May 28, 2026
4 checks passed
@kennethphough
kennethphough deleted the fix/controller-sensitive-toggle branch May 28, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant