Added better error handling and new decorator for requiring a staff role