Hi, Edwin.
If users edit article just from frontend, so put your publish field in site tab ( choose hidden ), and set it to unpublish state.
And you will get:
1. User submit article trought this form from frontend ( article will be saved as unpbulished)
2. Administrator checks article and sets it to published.
3. User edit again edit article from frontemd and save it ( article again will be save as unpublished)
4. Administrator checks article and sets it to published.
The problem is that in this way articles will be always set to unpublish, regardless of whether the user has made changes in the field or not.
Does it work for you?
The second way is to make a copy of the editable fields, making them hidden and by using triggers try to compare changes in them.
If field was not changed, just do not show save button, if yes - show.