If it's not already included, add a confirmation screen at the end of the sign-up process where a user can review and edit their details before creating their account. This means they can see which time zone they've selected, and change it if necessary (for example if they made a mistake during sign-up).
Once they're logged in, it gets more complex, and really depends on the wider functionality of the app.
How integral is "publishing an object" to the app? Will users do this often? If this is the main function, then it's unlikely that the user is going to edit their time zone settings first. They're going to want to cut straight to publishing. And if you've added an additional confirmation step, it's less likely that they need to make edits once they're logged in. In that instance, I would remove the ability to change the time zone once logged-in altogether.
If, however, "publishing an object" is a rare occurrence, or something that might be done months after signing up, it would make more sense to allow a time zone change to a logged-in user. Maybe they've had time to move away since they first registered.
I think more context is needed in terms of the purpose of the app, before deciding which settings should be available. Will they be using the app for a brief time? Or for years? (which would leave more likelihood for moving locations and time zones). What is the reason for "locking" the time zone? Does it really need to happen? Maybe you should make this "lock" clear during the "publishing an object" stage, since this is the action that will directly affect the functionality.