add validator

This commit is contained in:
clement.hector 2021-09-23 11:10:47 +02:00
parent 0c8af1f7b6
commit d4827bcc7a

View file

@ -0,0 +1,39 @@
import pyblish.api
import maya.cmds as cmds
import openpype.api
from openpype import lib
class ValidateLoadedPlugin(pyblish.api.ContextPlugin):
"""Ensure there are no unauthorized loaded plugins"""
label = "Loaded Plugin"
order = pyblish.api.ValidatorOrder
host = ["maya"]
actions = [openpype.api.RepairContextAction]
@classmethod
def get_invalid(cls, context):
invalid = []
for plugin in context.data.get("loadedPlugins"):
if plugin not in cls.authorized_plugins:
invalid.append(plugin)
return invalid
def process(self, context):
invalid = self.get_invalid(context)
if invalid:
raise RuntimeError(
"Found forbidden plugin name: {}".format(", ".join(invalid))
)
@classmethod
def repair(cls, context):
"""Unload forbidden plugins"""
for plugin in cls.get_invalid(context):
cmds.unloadPlugin(plugin, force=True)