Can use these two plugins to restrict categories users can assign when writing posts, but the restrict does not carry forward to view the posts on the blog.
https://www.ads-software.com/extend/plugins/level2categories-2/
https://www.im-web-gefunden.de/wordpress-plugins/role-manager/
described at https://www.ads-software.com/support/topic/240606 by mtg169
User-Cats Manager
https://www.ads-software.com/extend/plugins/user-cats-manager/
Provides to admin users a way to select what categorie determined users can write. Administrators have access to all categories. Users are restricted to seeing posts only in their designated categories. Visitors must login to see posts.
Category Access allows you to limit, by user, what categories the person sees when editing posts. This applies to just Authors, Contributore, and Subscribers–which makes sense. Can also control what categories are not displayed on the blog but within limits (will hide the_content and the_title, but not the_time,the_date, the_category) Can also restrict what categories guests (not logged in) see on blog.
https://www.coppit.org/code/
Bind-user-to-cat binds each user to a specified category. It works great. A user can post to only one category. When he goes into Manage, he sees all posts but can edit only the ones in his category. ?? And everyone is able to view all posts
https://www.ads-software.com/extend/plugins/bind-user-to-cat/.