isModifiableBy

fun Waypoint.isModifiableBy(nodeNum: Int?): Boolean(source)

Whether nodeNum is permitted to edit this waypoint or broadcast a change/removal of it: true when the waypoint is unlocked, or locked to exactly nodeNum. A null nodeNum (our own identity not yet known) can only modify unlocked waypoints.

Single source of truth for the locked_to permission check. Callers pass the identity being checked:

  • map edit/delete gates pass our own node number, so the creator can always manage a waypoint locked to themselves;

  • the inbound-packet validator passes the packet's sender, so a locked waypoint is only accepted from its owner.

The lock owner must be a real node number. Writing a placeholder (e.g. 1) would lock a waypoint to a phantom node that no real device can match, silently blocking even the creator — see issue #6343.