icon picker
Permission Levels

What this is:

You’ll likely want to allow the users in your app to do different things. For example - can just anyone invite a new user or delete a project or view that fancy User Analytics page? Probably not. So you need a “permissions” system that allows some users to do/view some things and blocks the rest.
This write-up assumes that you will have a private “Admin Dashboard” page where you and your team (if you have one) can view details about what’s happening in your app, and possible add or change user data via an interface you’ve built for that purpose.

How I do it:

First, I’m going to ask myself, is this a
@B2B
app or
@B2C
?
If it’s B2C:
your permissions setup can be fairly simple. Create an option set called “App Permission Levels” - here are the options:
Display
Notes
Super Admin
Can view and do anything and everything, no restrictions.
Admin
Can view and do app data that regular users can’t see/do, but has some limits on critical or dangerous functions.
Regular
These are plain old users of your app - no access to “backend” type of data.
No results from filter
On your User record, you’d have a field that stores one of these options, and you’d use conditionals to show/hide UI elements and block/allow workflow and page access. Easy peasy.

But if your app is
@B2B
:
It probably needs a company/employee permission structure, which is more complex (but necessary).
This is all laid out here: . However, the setup I talk through there handles the permissions related to company data - not app data. So you STILL need the setup above.

Important Note:

Many, many, many, almost ALL new Bubblers conflate “User Types” (laid out here: ) with “Permission Levels.” They create one option set that includes both of those things. So you might end up with Teacher, Student, and Admin all on the same set.
This is wroooooong wrong wrong! User Types are related, yes, but they are NOT the same.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.