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

feat(core): Support create, delete, edit role for users in Public API #10279

Conversation

ivov
Copy link
Contributor

@ivov ivov commented Aug 2, 2024

Copy link
Member

@netroy netroy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As long as the API looks stable to you, we can merge this, and fix any implementation issues later.

createUser: [
globalScope('user:create'),
async (req: Create, res: Response) => {
const usersInvited = await Container.get(InvitationController).inviteUser(req);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should not be using private controllers in the public API. but I guess since all the payload validation is still in the controllers, we'd have to duplicate a lot of code.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now the tests will ensure we catch any unexpected changes to the Public API.

@@ -18,3 +18,53 @@ get:
$ref: '../schemas/userList.yml'
'401':
$ref: '../../../../shared/spec/responses/unauthorized.yml'
post:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should look into migrating the public api to a similar pattern using decorators and DI, and then generate the openapi spec file from the decorator metadata instead (if possible).

Copy link
Contributor Author

@ivov ivov Aug 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100%! For context, we discussed internally and are aware of all the problems of the Public API, but Enterprise customers need this so we're expanding it as it is for now.

Comment on lines +90 to 94
if (withApiKey) {
return await addApiKey(await createUser({ role: 'global:member' }));
}

return await createUser({ role: 'global:member' });
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (withApiKey) {
return await addApiKey(await createUser({ role: 'global:member' }));
}
return await createUser({ role: 'global:member' });
const member = await createUser({ role: 'global:member' });
if (withApiKey) {
return await addApiKey(member);
}
return member;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add this in the cleanup PR 👍🏻

@n8n-assistant n8n-assistant bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Aug 2, 2024
Copy link

cypress bot commented Aug 2, 2024



Test summary

390 0 0 0Flakiness 0


Run details

Project n8n
Status Passed
Commit cdc3edf
Started Aug 2, 2024 9:54 AM
Ended Aug 2, 2024 9:59 AM
Duration 04:42 💡
OS Linux Debian -
Browser Electron 118

View run in Cypress Cloud ➡️


This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Cloud

Copy link
Contributor

github-actions bot commented Aug 2, 2024

✅ All Cypress E2E specs passed

@ivov ivov merged commit 84efbd9 into master Aug 2, 2024
36 checks passed
@ivov ivov deleted the pay-1801-support-create-delete-edit-role-for-users-in-public-api branch August 2, 2024 10:06
MiloradFilipovic added a commit that referenced this pull request Aug 2, 2024
* master:
  refactor(core): Clean up event relays (no-changelog) (#10284)
  fix(editor): Fix execution retry button (#10275)
  feat(core): Show sub-node error on the logs pane. Open logs pane on sub-node error (#10248)
  refactor(core): Move instanceRole to InstanceSettings (no-changelog) (#10242)
  feat(core): Allow filtering executions and users by project in Public API  (#10250)
  fix(core): Make execution and its data creation atomic (#10276)
  refactor(core): Mark schema env vars used by cloud hooks (no-changelog) (#10283)
  ci: Fix DB tests (no-changelog) (#10282)
  feat(core): Support create, delete, edit role for users in Public API (#10279)
  refactor(core): Decouple post workflow execute event from internal hooks (no-changelog) (#10280)
  feat(core): Allow transferring credentials in Public API (#10259)
  feat(core): Support create, read, update, delete projects in Public API (#10269)
  ci: Introduce lint rule `no-type-unsafe-event-emitter` (no-changelog) (#10254)
  fix(core): Surface enterprise trial error message (#10267)
  fix(editor): Enable moving resources only if team projects are available by the license (#10271)
  fix(core): Upgrade tournament to address some XSS vulnerabilities (#10277)

# Conflicts:
#	packages/cli/src/Server.ts
@github-actions github-actions bot mentioned this pull request Aug 7, 2024
@janober
Copy link
Member

janober commented Aug 7, 2024

Got released with [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team Released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants