[BUG-6526]Tag Security is Ignored by Property Bindings

Hi,

I’m using Ignition Edge 8.1.18 with Perspective. I pass in a view parameter to a screen (an integer), and then I use that parameter to indirectly bind a UDT (tag) to a custom property in the screen. Finally, I bind controls on the screen to the custom property.

With the above approach, when a user edits tags via controls on the screen, all of the underlying tag security settings appear to be ignored. For example, I have a BOOL tag with write restricted to authenticated users, and it’s bound to a checkbox on the screen. If I bind the tag directly to the checkbox, it prevents writes with a security alert. However, if I bind the checkbox to the custom property (which is bound to the tag), the write is allowed and there is no security alert. Likewise the screen even ignores read-only restrictions on the tag and writes values anyway.

This binding approach (custom property) provides major advantages to me because I can avoid filling the screen with indirect tag bindings and have easier maintenance/updates. However, with this unexpected security behavior, it won’t be functional.

I haven’t been able to figure out if this is a bug or a feature from Google or the docs. I would appreciate feedback on this. Thanks!

Additional information:

To reproduce the issue, a nested UDT is required. If you bind a control as described above (via a custom property) to a child tag of a single UDT, security applies as expected. However, if you bind to a tag that is a child of a nested UDT, security fails to apply. The examples below were reproduced by a colleague as well on standard Ignition (non-Edge).

------- Example 1 (fails) -------
Target Tag: PadUdt\TankUdt\TopLevel
(TopLevel has restricted security)

Bind PadUdt to MyPad (Custom Property) in the screen (direct or indirect)
Bind a control to view.custom.MyPad.TankUdt.TopLevel

------- Example 2 (fails) -------
Target Tag: PadUdt\TankUdt\TopLevel
(TopLevel has restricted security)

Bind PadUdt\TankUdt to MyTank (Custom Property) in the screen (direct or indirect)
Bind a control to view.custom.MyTank.TopLevel

------- Example 3 (Works) -------
Target Tag: PadUdt\Active
(Active has restricted security)

Bind PadUdt to MyPad (Custom Property) in the screen (direct or indirect)
Bind a control to view.custom.MyPad.Active

1 Like

I have been able to duplicate this issue and a bug has been created. One thing I did notice was even your 3rd example was writing to the tag. I appreciate your taking the time to write up replication steps.

Thanks,
Garth

1 Like

In any case, I’d suggest binding the component’s enabled condition to the canWrite property of the tag so operators don’t have to click the button to know they can’t click it

2 Likes