# Removing Security Privileges

**URL:** <https://forum.inductiveautomation.com/t/removing-security-privileges/83324>\
**Category:** Ignition\
**Created:** [December 19, 2023, 5:56pm UTC](https://forum.inductiveautomation.com/t/removing-security-privileges/83324 "2023-12-19T17:56:31Z")\
**Posts on this page:** 1\
**Showing post:** 9

<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:** [November 10, 2025, 5:43pm UTC](https://forum.inductiveautomation.com/t/removing-security-privileges/83324/9 "2025-11-10T17:43:14Z")

</div>

For posterity, as the XML snippet above alludes, component permissions are stored via Swing's `putClientProperty` method.

So you could combine a script like this:

> [@Upgrade version makes buttons dissapear (possible bug?)](https://forum.inductiveautomation.com/t/upgrade-version-makes-buttons-dissapear-possible-bug/54921/14):
>
> For anyone finding/being linked to this thread in the future; if you want a ‘middle ground’ solution between a global UI manager key and setting every button up with scripting, you could use a technique like this to recursively modify every button in the window (e.g. in visionWindowOpened): from javax.swing import AbstractButton from com.inductiveautomation.ignition.client.IgnitionLookAndFeel import setBlendMode from de.javasoft.plaf.synthetica.util.Synthetica2DUtils import BlendMode def getCo…

With calling the static method on [`ComponentPermissions`](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.50/com/inductiveautomation/vision/api/client/components/model/security/ComponentPermissions.html#set(javax.swing.JComponent,com.inductiveautomation.vision.api.client.components.model.security.ComponentPermissions)):

To get something like this:

```python
from com.inductiveautomation.vision.api.client.components.model.security import ComponentPermissions

def getComponents(window):
	def walkComponents(component):
		for component in component.components:
			yield component
			walkComponents(component)
	
	return walkComponents(window.rootContainer)

for path in system.gui.getOpenWindowNames():
	win = system.gui.getWindow(path)
	for component in getComponents(win):
		ComponentPermissions.set(component, None)

```

You could open a batch of windows in the designer, then execute that script in the script console, then save those windows and open the next batch, to very quickly remove all configured component security in Vision.

---

_[View the full topic](https://forum.inductiveautomation.com/t/removing-security-privileges/83324)._
