From f2aadb385d30b764f9c97f6b0d070f744b284ed2 Mon Sep 17 00:00:00 2001 From: Nuno Martinho Date: Thu, 15 Apr 2021 17:31:19 +0000 Subject: [PATCH] register post WIP --- dbs/myapp.mv.db | Bin 73728 -> 77824 bytes server/services/users/register.post.js | 43 ++++++++++++++++++ server/setup/_schema-form-6-user.js | 60 +++++++++++++++++++++++++ website/src/pages/Register/index.js | 11 ++--- 4 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 server/services/users/register.post.js diff --git a/dbs/myapp.mv.db b/dbs/myapp.mv.db index cb3336fcf46c1026cce7c782d60b776fee3a179b..68c495106bd039ad6e306e8e1c2705c0d6da777e 100644 GIT binary patch delta 6739 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 diff --git a/server/services/users/register.post.js b/server/services/users/register.post.js new file mode 100644 index 0000000..98bcd79 --- /dev/null +++ b/server/services/users/register.post.js @@ -0,0 +1,43 @@ +const name = _req.getString("name"); +const username = _req.getString("username"); +const email = _req.getString("email"); +const pass = _req.getString("password"); + +const emailExists = _user.firstByMail(email); +const usernameExists = _user.firstByUser(username); + +if (emailExists != null) { + _header.status(409); + _out.json( + _val.map() + .set("error", true) + .set("message", "email-exists") + ); +} else if (usernameExists != null) { + _header.status(409); + _out.json( + _val.map() + .set("error", true) + .set("message", "user-exists") + ); +} else { + const group = _group.firstByCode("user"); + const user_id = _user.create( + _val.map() + .set("name", name) + .set("mail", email) + .set("user", username) + .set("pass", password) + .set("group_id", group.getInt("id")) + ); + _db.insert( + 'user', + _val.map() + .set("name", name) + .set("email", email) + .set("client_user_id", user_id) + .set("role_id", 1) + ); + _log.info("New user created with id: "+ user_id); + _out.json(_val.map().set("result", true)); +} \ No newline at end of file diff --git a/server/setup/_schema-form-6-user.js b/server/setup/_schema-form-6-user.js index 4e21740..3768fb2 100644 --- a/server/setup/_schema-form-6-user.js +++ b/server/setup/_schema-form-6-user.js @@ -25,6 +25,36 @@ _form.createIfNotExists( .set("show_id", true) .set("uid", "e5ec80ac-841c-416d-b73b-dc3ab56dad69") ) +_form.createComponentIfNotExists( + "e5ec80ac-841c-416d-b73b-dc3ab56dad69", + _val.init() + .set("colspan", 0) + .set("displayname", "User_id") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "client_user") + .set("notnull", false) + .set("primarykey", false) + .set("properties", "{\"ALLOW_USER_LOGGED\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"GROUPS\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"},\"GROUPS_MODE\":{\"default\":\"all|exclude|only\",\"type\":\"CHOICE\",\"value\":\"all\"},\"USERS_MODE\":{\"default\":\"all|exclude|only\",\"type\":\"CHOICE\",\"value\":\"all\"},\"USERS\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "user") + .set("uid", "c8afec06-217b-4a8e-ae59-224057bea6ef") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 6) +) _form.createComponentIfNotExists( "e5ec80ac-841c-416d-b73b-dc3ab56dad69", _val.init() @@ -55,6 +85,36 @@ _form.createComponentIfNotExists( .set("x", 1) .set("y", 2) ) +_form.createComponentIfNotExists( + "e5ec80ac-841c-416d-b73b-dc3ab56dad69", + _val.init() + .set("colspan", 0) + .set("displayname", "Nome") + .set("firebase", "") + .set("group_id", 0) + .set("height", 0) + .set("max", 0) + .set("min", 0) + .set("name", "name") + .set("notnull", true) + .set("primarykey", false) + .set("properties", "{\"MASK_REVERSE\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK_SELECTONFOCUS\":{\"default\":\"false\",\"type\":\"BOOLEAN\",\"value\":\"false\"},\"MASK\":{\"default\":\"\",\"type\":\"STRING\",\"value\":\"\"}}") + .set("rowspan", 0) + .set("tdheight", 0) + .set("tdwidth", 0) + .set("type", "text") + .set("uid", "6907d01e-24e3-4e2a-94fd-1c3a34fc5bb5") + .set("user_id", 0) + .set("whenedit", true) + .set("whenexport", true) + .set("whenfilter", true) + .set("whennew", true) + .set("whenresult", true) + .set("whenview", true) + .set("width", 0) + .set("x", 1) + .set("y", 1) +) _form.createComponentIfNotExists( "e5ec80ac-841c-416d-b73b-dc3ab56dad69", _val.init() diff --git a/website/src/pages/Register/index.js b/website/src/pages/Register/index.js index be22247..1d8babb 100644 --- a/website/src/pages/Register/index.js +++ b/website/src/pages/Register/index.js @@ -66,10 +66,8 @@ export default () => { name="password" label="Password" rules={[ - { - required: true, - message: 'Please input your password!', - }, + { required: true, message: 'Please input your password!', min: 8, max: 25 }, + ]} hasFeedback > @@ -82,10 +80,7 @@ export default () => { dependencies={['password']} hasFeedback rules={[ - { - required: true, - message: 'Please confirm your password!', - }, + { required: true, message: 'Please confirm your password!', min: 8, max: 25 }, ({ getFieldValue }) => ({ validator(_, value) { if (!value || getFieldValue('password') === value) {