From 05b6bb7233c56d92e5bc4afcc8575c912c671877 Mon Sep 17 00:00:00 2001 From: Cisphyx Date: Thu, 4 Jan 2024 16:17:23 -0500 Subject: [PATCH] Prevent re-adding extended model elements in nexus handlers (#3486) --- synapse/cortex.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/synapse/cortex.py b/synapse/cortex.py index 9787f6d82e..886db595d8 100644 --- a/synapse/cortex.py +++ b/synapse/cortex.py @@ -3163,6 +3163,10 @@ async def addUnivProp(self, name, tdef, info): @s_nexus.Pusher.onPush('model:univ:add') async def _addUnivProp(self, name, tdef, info): + base = '.' + name + if base in self.model.props: + return + self.model.addUnivProp(name, tdef, info) await self.extunivs.set(name, (name, tdef, info)) @@ -3191,6 +3195,8 @@ async def addForm(self, formname, basetype, typeopts, typeinfo): @s_nexus.Pusher.onPush('model:form:add') async def _addForm(self, formname, basetype, typeopts, typeinfo): + if self.model.form(formname) is not None: + return ifaces = typeinfo.get('interfaces') @@ -3224,6 +3230,8 @@ async def delForm(self, formname): @s_nexus.Pusher.onPush('model:form:del') async def _delForm(self, formname): + if self.model.form(formname) is None: + return for layr in self.layers.values(): async for item in layr.iterFormRows(formname): @@ -3259,6 +3267,9 @@ async def addFormProp(self, form, prop, tdef, info): @s_nexus.Pusher.onPush('model:prop:add') async def _addFormProp(self, form, prop, tdef, info): + if (_form := self.model.form(form)) is not None and _form.prop(prop) is not None: + return + _prop = self.model.addFormProp(form, prop, tdef, info) if _prop.type.deprecated: mesg = f'The extended property {_prop.full} is using a deprecated type {_prop.type.name} which will' \