You can update the
Publishing.CheckSecurity setting, this will ensure that only items that the user has read/write/delete access to will be published.
Check security rights when publishing?
When CheckSecurity=true, Read rights are required for all source items. When it is
determined that an item should be updated or created in the target database,
Write right is required on the source item. If it is determined that the item
should be deleted from target database, Delete right is required on the target item.
In summary, only the Read, Write and Delete rights are used. All other rights are ignored.
Default value: false
<setting name="Publishing.CheckSecurity" value="false"/>
I would highly recommend making use of Workflow though, to ensure only items of the correct state are ever published.