I have been testing and evaluating switching over to Ignition for a central HMI system for a few weeks, and have been making great strides.
One thing I can not wrap my head around, is how to do a maintenance login that times out after (x) number of minutes, from within the same app. Although I easily could have maintenance staff use their own logins, 99.99% of the time maintenance will walk away as soon as a problem is resolved, leaving the operators with the ability to have unauthorized access to dangerous functions.
You may also want a button that logs out as well so the maintenance can do what they need, then log out, or the operator can log them out if they need immediately so they can then login and do what they need.
If you want to enforce a maximum logged-in time, do what Brian suggests, but don't check user inactivity. Instead, use the timer event to log a timestamp when a maintenance user logs in, and log them out some fixed duration later.
This is the way. Our client specifies 30 minutes maximum for any levels above an operator level/role. This way even supervisors can't log in to have some extra functionality and leave it for an operator to get into things they shouldn't be getting into.