User Roles

The MakerKit Starter has three default roles:

export enum MembershipRole { Member, Admin, Owner, }

We use an enum, but you can convert this to an object if you need more granular permissions.

The permissions are hierarchical, which means that if we had a role with a lower level (Readonly), we would add it before Member:

export enum MembershipRole { Readonly, Member, Admin, Owner, }

When writing permissions between users, we can check if the user performing the action has a greater role than the target user.

You can extend the role above easily by adding your own, for example:

export enum MembershipRole { Readonly, AccountManager, Owner, }

Afterward, remember to add the name and descriptions of these roles in the translations file common.json:

"roles": { "owner": { "label": "Owner", "description": "Can change any setting, invite new members and manage billing" }, "accountmanager": { "label": "Account Manager", "description": "Can change some settings, invite members, perform disruptive actions" }, "readonly": { "label": "Readonly", "description": "Can only read information" } }

Learn more about using user roles in your permissions system.

Subscribe to our Newsletter
Get the latest updates about React, Remix, Next.js, Firebase, Supabase and Tailwind CSS