Setting up User Role as Option set

Newbie question. I’m Creating a Lettings Agency platform where you’ll have:

  • Tenants (External)
  • Landlords (External)
  • Staff (Internal)
  • Admin (Internal)

All user roles will access and navigate the same system and pages but what is visible and hidden will depend on the user role and a few other permissions.

I am thinking of creating User Roles via an option set. However I want the Tenant & Landlords to toggle between the two, whilst the ‘Staff’ and ‘Admin’ will be fixed role with no means of change to any other role.

Question:

  1. Is option set the best way to approach this? I’ve read that you can’t set this in private – so does that mean I can’t hide the ability for the external users from seeing internal roles?
  2. During the Sign-Up, do I have to give the user a drop-down option to select one of the User Roles or can I assign a default User Role and the user can then toggle once signed in?
  3. Is Option-set the best route to choose for this setup ?

This is how I do it on my apps:

Create a new table called “role”.

Make an option set called “Role_Type”.

Add another attribute called role level (number). Make your levels from lowest (less permissions), to highest (more permissions).

Add a new field in Role called Role Selected. Make it point to the “Role Type” option set.

Add that role table relation to the User table.

Now you can filter users by their current role if it’s level 0, greater than 0, less than 3, whatever.

What’s the practical advantage of role table compared to list of roles field in User, taking into account that search filter based on roles will not be available in Privacy rules for second level references (X’s Y case)?

1 Like

My permissions are based off API, so that may be the difference.

Thanks for the response. Will give this a try and see how I get on.