But you know the self service UI task, where thsee users are able to re-enable them selves, right?
why not programmatic all do in a action task inside this UI task the logic?
Changing the default core framework is not good (if not already done ), and using advanced "let's see which attribute was changed" logic could be avoided.