Hi,
I agree with all that is said before, but just one point (personal oppinion and security best practice):
For security reasons it's better to use that condition in an If and place the button inside the true branch, because if you use the visible property the HTML is loaded and someone with good knowledge can override that property.
If you place that button inside an If, when false, the HTML for it is not loaded, so, it's something that can't be manipulated in the client side.
Hope this can help!
Best regards,
Ricardo M Pereira