Add users to Cloudron - N8N
-
So I made a N8N flow that takes user-submitted email addresses from a form.io form.
I can create users and generate the signup emails, however, I'm stuck at adding them to groups
My flow is below, can anyone shed any light?
{ "name": "Add to groups", "nodes": [ { "parameters": {}, "name": "Start", "type": "n8n-nodes-base.start", "typeVersion": 1, "position": [ 250, 300 ] }, { "parameters": { "projectId": "6168084eb35ff178dd907fd7", "formId": "61680a64e1092633bce1b86c", "events": [ "create" ], "simple": false }, "name": "Form.io Trigger", "type": "n8n-nodes-base.formIoTrigger", "typeVersion": 1, "position": [ 450, 450 ], "webhookId": "c923b1b2-2794-44b3-9dce-a3c3936b06d1", "credentials": { "formIoApi": { "id": "3", "name": "Form.io account 2" } } }, { "parameters": { "requestMethod": "POST", "url": "=https://my.cloudron-url.org/api/v1/users/{{$node[\"create user\"].json[\"email\"][\"id\"]}}/create_invite?access_token=xxxxkeyfromcloudronxxxxxxx&_method=post", "options": {} }, "name": "Create invite", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1, "position": [ 870, 420 ] }, { "parameters": { "requestMethod": "POST", "url": "=https://my.cloudron-url.org/api/v1/users/{{$node[\"create user\"].json[\"email\"][\"id\"]}}/send_invite?access_token=xxxxkeyfromcloudronxxxxxxx&_method=post", "options": {} }, "name": "send invite", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1, "position": [ 1070, 420 ] }, { "parameters": { "requestMethod": "POST", "url": "=https://my.cloudron-url.org/api/v1/users/?access_token=xxxxkeyfromcloudronxxxxxxx&_method=post", "responseFormat": "string", "dataPropertyName": "email", "options": {}, "bodyParametersUi": { "parameter": [ { "name": "=email", "value": "={{$node[\"Form.io Trigger\"].json[\"data\"][\"email\"]}}" } ] } }, "name": "create user", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1, "position": [ 650, 450 ] }, { "parameters": { "requestMethod": "PUT", "url": "=https://my.cloudron-url.org/api/v1/users/{{$node[\"create user\"].json[\"email\"][\"id\"]}}/groups?access_token=xxxxkeyfromcloudronxxxxxxx", "responseFormat": "string", "dataPropertyName": "=groups", "jsonParameters": true, "options": {}, "bodyParametersJson": "={\n\"groupIds\": [ ]\n}", "queryParametersJson": "=users" }, "name": "add to /users", "type": "n8n-nodes-base.httpRequest", "typeVersion": 1, "position": [ 1250, 410 ] } ], "connections": { "Form.io Trigger": { "main": [ [ { "node": "create user", "type": "main", "index": 0 } ] ] }, "Create invite": { "main": [ [ { "node": "send invite", "type": "main", "index": 0 } ] ] }, "send invite": { "main": [ [ { "node": "add to /users", "type": "main", "index": 0 } ] ] }, "create user": { "main": [ [ { "node": "Create invite", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": {}, "id": 7 }
-
@sam_uk I guess you are looking for the API call to add a user to a group ?
So, you make a PUT request on
/api/v1/users/:userId/groups
withgroupIds
in the body.groupIds
is an array of group ids.Group ids are not the same as group name. You have to get the ids via the GET
/api/v1/groups
call. This is because group names can be changed. -
You should get something like this:
$ curl 'https://my.domain.com/api/v1/groups?access_token=xxx' { "groups": [ { "id": "gid-02fc23f0-c0df-4276-a54a-e3958b53ffd8", "name": "people", "source": "", "userIds": [ "uid-0a7dc777-c010-459e-a8db-ab853ea4f742" ] } ] }
-
@andreasdueren No sorry we ended up going with Keycloak for user management.
-
@andreasdueren I have recently built a reg page with the same features but using Wappler/PHP and the LAMP app in Cloudron
Currently cleaning up the project and plan on releasing it for the community =] -
@plusone-nick Awesome! Please keep me updated
-
@andreasdueren Quick update! I have completed the port over to PHP along with a new front end design =] Here is a quick demo with +1 theming:
Next I will be forking the project to make the Cloudron Community Theme & also scrub any keys/URLs
Here is the git repo where I will publish: https://git.plusone.network/nick/cloudron-registration-community
Currently there is only the readme notes but you can check them out in the meantime if anyone is interested in how Wappler works or would like more insight into how the app is designed. I have screenshots and code snippets of all of the API's & Variables. There are 5 items that must be changed (2 URL's, 2 ENV Variables & 1 Config Secret Key) and then its as simple as dropping it into a LAMP app! =]EDIT: Forgot to leave the URL: https://join.plusonenetwork.xyz/
This is on my test/demo org so feel free to register& try it out yourself! I will be purging this instance eventually or you can message me to remove your user if you'd likeI do plan on adding more security/validation features in the near future but this should do for now...
Any thoughts or suggestions are more than welcome! =]
-
here is the first release: https://forum.cloudron.io/topic/7546/open-registration-app-for-cloudron