You might do a 'pick every door' event (dunno if there is a 'doodadgroup' or whether you have to put them into an array and run through that)
myRegion = convert (Position of (CurrentDoor) + x radius) to region
if unit is in region -> make the door stay open
else -> make it close
i hope this helps, but for all i know, there is no easier solution...
PS:
you may do the doors as 'units' giving them the 'shop' ability -> now anyone might use all it's abilities
-> give it bearfrom -> morph to an alternate from (open, no collision) for some time
that might do the trick as well -> but you need to take a little care of them beeing a unit and no longer a doodad now... maybe that courses some minor issues ^^ but i don' belive it does.