If Who Can Publish is set to anything other than Editor, they can't actually Publish

(Bug, Closed -> Fixed, Priority: Critical, Test Status: No automated tests yet , Reported By Bad Link: Thing 3y284oe not found, )
Summary: For instance, create a "Maintainer" Custom Role, and set Who Can Publish and Who Can Edit Instances to that Role. They can edit, but the Publish buttons in the Advanced Editor are disabled.
This is actually a dumb bug on the ModelDesignerPage. It snuck through due to a collection of subtle factors:
  • The page is checking model.hasPerm(canPublishPerm). Now that the permission is on the Space, this isn't ever actually set.
  • But, the Owner presumptively has all permissions, so the buttons work fine for zim.
  • Worse, the default value for CanPublishPermission is Roles.EditorRole. So it still works fine so long as the person has Editor, but not for any other Role.
The fix should be simply to change model to space there.