# System.security.lockScreen

**URL:** <https://forum.inductiveautomation.com/t/system-security-lockscreen/111485>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [October 15, 2025, 7:42pm UTC](https://forum.inductiveautomation.com/t/system-security-lockscreen/111485 "2025-10-15T19:42:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![robertm](https://avatars.discourse-cdn.com/v4/letter/r/ea5d25/32.png) [@robertm](https://forum.inductiveautomation.com/u/robertm)\
**Post date:** [October 15, 2025, 7:42pm UTC](https://forum.inductiveautomation.com/t/system-security-lockscreen/111485/1 "2025-10-15T19:42:56Z")

</div>

From the docs, it mentions users with proper credentials…however other than reentering the password for the user that locked the screen, I don't see a means of entering a username. I'm using this globally as a clean screen function which worked fine up until recent migration to an SQL db usersource. That usersource uses a badge ID, and the password is hard-coded the same for all operators, so my current login does this. But I see no method of doing this on the system lock interface. Are there any methods or classes that aren't documented that can be exposed, or is that the limitation? Because the common password is hidden and hard coded, noone really knows what to enter.

If that's the limitation, I'm considering just using a timeout and unlock. I assume that the function of calling the system lock restarts the inactivity time? If so, is it best to just have a client timer script that checks for inactivity \> X? These are touchscreens, so does the wiping around on the lockscreen restart inactivity, or does it time until the screen is unlocked? I'm not sure how inactivity behaves under system locked. I thought of just using the islocked method in a timer, but I didn't see any way to insure the timer resets upon lock.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [October 15, 2025, 11:42pm UTC](https://forum.inductiveautomation.com/t/system-security-lockscreen/111485/2 "2025-10-15T23:42:09Z")

</div>

Can't speak to the overall wisdom of this approach, but it is possible to make your own modal popup window in Vision that prevents user interaction, so you can avoid the `lockScreen` function and do whatever you want on your popup:

> [@Modal Pop-Up How-To?](https://forum.inductiveautomation.com/t/modal-pop-up-how-to/15211/10):
>
> Alright, who is ready for some hacking? This might get complicated, but here is how I have achieved this in the past. As an example, I will use my custom lock screen, attached in this post. Here is the script. def lockScreen(): from javax.swing import SwingUtilities,JFrame #Import some stuff import system.nav if system.util.getGlobals().has\_key('lockScreen'): #Check if the screen has been locked before. This really just saves the set up code system.util.getGlobals()["app"].getRootPane…

---

<div class="post-metadata">

**Author:** ![robertm](https://avatars.discourse-cdn.com/v4/letter/r/ea5d25/32.png) [@robertm](https://forum.inductiveautomation.com/u/robertm)\
**Post date:** [October 15, 2025, 11:58pm UTC](https://forum.inductiveautomation.com/t/system-security-lockscreen/111485/3 "2025-10-15T23:58:24Z")

</div>

Thanks…I did see that in searches, but the getGlobals scared me away.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [October 16, 2025, 12:23am UTC](https://forum.inductiveautomation.com/t/system-security-lockscreen/111485/4 "2025-10-16T00:23:04Z")

</div>

Use of `getGlobals` within a Vision client is pretty safe; even if you trigger a terrible memory leak you can restart the client pretty easily.

It's using it on the gateway that you want to be very careful with your PPE 😃

But really, the 'risk' is mostly about storing user defined Python class objects. As long as you don't do that (built in data types and Java imports are fine), I wouldn't be scared away from the potential utility of the globals dictionary.
