This is how I'd approach it :
a) Make sure the buttons/links to the admin xpage only display for the admin role.
b) On the admin xpage, put a header with a redirect back to the home page if not the admin role.
c) Enclose the rest of the admin page in a panel that will only render if using the correct role.