Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reworking user roles grant and admin #491

Open
fungilation opened this issue Mar 22, 2024 · 6 comments
Open

Reworking user roles grant and admin #491

fungilation opened this issue Mar 22, 2024 · 6 comments
Assignees

Comments

@fungilation
Copy link

fungilation commented Mar 22, 2024

Context: in nhost.toml, standard config for roles.allowed:

[auth.user.roles]
default = 'user'
allowed = ['user']

When roles.allowed includes other roles, such as moderator. "allowed" implies a list that could be granted to users. But no, current behaviour is that any on this list is auto granted to all new users. This is misleading and dangerous, when additional roles is associated with higher permissions, and thus should be only allowed but require explicit (manual) grant to select users.

I suggest reworking this for both nhost.toml and dashboard /users, ex.

image

Allowed Roles here should instead be a new config for "Granted Roles". Where it list all roles in the auth.roles table, with select toggles on as per what's been granted under the auth.user_roles table.

And then, in dashboard /settings/roles-and-permissions

image

This actual Allowed Roles list should be just a CRUD interface to config the auth.roles table. Could even just link out to dashboard /database/browser/default/auth/roles

With above, auth.user.roles.allowed in nhost.toml should be deprecated. Grant is per user_roles, and Allowed is all rows in roles tables

@dbarrosop dbarrosop self-assigned this Apr 3, 2024
@dbarrosop
Copy link
Member

Thanks, we will take a look.

Copy link

stale bot commented Sep 30, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Sep 30, 2024
@dbarrosop dbarrosop removed the stale label Sep 30, 2024
@kelkes
Copy link

kelkes commented Jan 23, 2025

Any progress on that matter? I still run into issues here Because i can't configure the available roles and default assigned roles separately

@dbarrosop
Copy link
Member

Because i can't configure the available roles and default assigned roles separately

You can do it today. The proposed changes here are purely UX improvements (much needed to be fair) but functionality-wise it doesn't add anything new.

Basically the way it works today:

  1. To configure available roles just manage them in the auth.roles table. Removing/Adding them there will make them available.
  2. To configure the default roles assigned to new users, you can set "default allowed roles" in the dashboard or nhost.users.roles.default in the toml.

@kelkes
Copy link

kelkes commented Jan 24, 2025

The main problem is, that the role is not listed in the User Configuration when it's not in the list of Available roles (altough it's in the table roles)... But when it's in the list, it will be added by default to the user.

I know that it can fix that all via the database.. but my client can not, and they are using the Auth UI to set roles for their users.

@dbarrosop
Copy link
Member

dbarrosop commented Jan 24, 2025

The main problem is, that the role is not listed in the User Configuration when it's not in the list of Available roles (altough it's in the table roles)... But when it's in the list, it will be added by default to the user.

Ok, that's a bug in the dashboard then. We are probably fetching the data from the wrong place so that needs fixing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants