John, if it's just and individual macro causing the issue, you shoudl be able to re-save the macro with a user that has appropriate permissions to re-sign it. I'm sure you've read it, but there is the documenation for working with macro signatures available with the rest of the docs. you get a very short snippet that says:
To re-sign individual macros, find the expression in the user interface and save the value (you can use the macro report tool to find the location). The system creates a new signature for the macro based on the application's current environment.
As Rui says, you can resign all of the macros across the instance if the above does not work. If you're comfortable poking about in SQL, you also have the option of locating the individual sinature an obliterating it. It lives in the CMS_UIElement
under the ElementVisbilityCOndition
column. In my case, the macro I used was:
CurrentUser.IsInRole("reporting")
Which translated to
{%CurrentUser.IsInRole("reporting")|(identity)GlobalAdministrator%}
In there, I can modify/remove the signature and - for good measure - restart the application.
Do keep in mind the security note if you just re-sign all macros:
Security warning: With the Sign all macros option enabled, the resigning process also includes macros that are unsigned or have invalid signatures. If your system's data contains invalid macros added by users with insufficient authorization, such macros receive valid signatures and represent potential security threats.