I’m not sure if there are any tutorials, but I can tell you what I did for my users as I have a very similar structure.
I’ve got 2 types of users, clients and painters. Clients create painting commissions, pay the painters, leave reviews,etc; Painters bid on the jobs, add photos of the commission progress, etc. They have access to many of the same pages, but have very different experiences on them because I vary the page contents/workflows based on a field I created in the User “thing”: user_type.
When they sign up, I have them check one of two Radio Buttons:
I’m interested in:
- Painting for others.
- Others painting for me.
Based on which of those is checked when they press “submit”, they are assigned a user_type (which is a field in the User “thing”):
-
Option 1: user_type = Painter.
-
Option 2: user_type = Client
This then gives you control over what the user sees, is able to do, etc. - all based on their user_type.
For example, all users on my site have access to a dashboard, but they see different things based on their user_type:
(As an exaple)
If current user’s user_type=“Client”, show payment buttons.
If current user’s user_type=“Painter”, show “add photos of commission progress” button.
For your purposes, you could include a self-identifying field (like the radio buttons in the example above) in the signup form and assign a user_type based on that.
Something along the lines of:
I am:
- A condo manager
- An owner of shares in a condo
Option 1: user_type = Manager
Option 2: user_type = Viewer
You can then base much of the user experience on a “current user’s user_type” check.
Hope that made sense.