Fixed where permissions that changed while a user was in the affected page caused a redirect loop if they refreshed, made hasAnyRole resilient to bad parameter input