diff --git a/docu/login_server.api.md b/docu/login_server.api.md index 4b80c0001..5cf44c422 100644 --- a/docu/login_server.api.md +++ b/docu/login_server.api.md @@ -48,11 +48,36 @@ In case of success returns: ```json { "state":"success", + "user": { + "created": 1614782270, + "disabled": false, + "email": "max.musterman@gmail.de", + "email_checked": true, + "first_name": "Max", + "group_alias": "gdd1", + "ident_hash": 323769895, + "last_name": "Mustermann", + "public_hex": "131c7f68dd94b2be4c913400ff7ff4cdc03ac2bda99c2d29edcacb3b065c67e6", + "role": "none", + "username": "" + } "session_id": -127182, "clientIP":"123.123.123.123" } ``` +- `user`: contain user object + - `created`: timestamp on which account was created + - `disabled`: true if account was disabled, if disabled no login or coin transfer is possible + - `email`: email of user + - `email_checked`: true if user has successfully clicked on activation link in email + - `first_name`: first name of user + - `group_alias`: alias of group/community to which user belong + - `ident_hash`: currently hash of email, will be later a identification hash to prevent multiple accounts and therefore multiple creations per user + - `last_name`: last name of user + - `public_hex`: public key of user in hex format + - `role`: role of user currently only "none" or "admin" + - `username`: not used yet - `clientIP`: should be the same as where the js-client is running, else maybe a man-in-the-middle attacks is happening or nginx was wrong configured. - `session_id`: can be also negative @@ -265,6 +290,19 @@ In case of success returns: { "state":"success", "email_verification_code_type":"resetPassword", "info":[], + "user": { + "created": 1614782270, + "disabled": false, + "email": "max.musterman@gmail.de", + "email_checked": true, + "first_name": "Max", + "group_alias": "gdd1", + "ident_hash": 323769895, + "last_name": "Mustermann", + "public_hex": "131c7f68dd94b2be4c913400ff7ff4cdc03ac2bda99c2d29edcacb3b065c67e6", + "role": "none", + "username": "" + } "session_id":1853761475 } ``` @@ -274,8 +312,20 @@ In case of success returns: - `registerDirect`: code generated by register for check email - `register`: code generated by auto-register via elopage for check email - `info`: can contain additional info strings - - "user hasn't password": if user hasn't set a password yet (for example if he was registered via elopage) + - "user has no password": if user hasn't set a password yet (for example if he was registered via elopage) - "email already activated": if email was already checked +- `user`: contain user object + - `created`: timestamp on which account was created + - `disabled`: true if account was disabled, if disabled no login or coin transfer is possible + - `email`: email of user + - `email_checked`: true if user has successfully clicked on activation link in email + - `first_name`: first name of user + - `group_alias`: alias of group/community to which user belong + - `ident_hash`: currently hash of email, will be later a identification hash to prevent multiple accounts and therefore multiple creations per user + - `last_name`: last name of user + - `public_hex`: public key of user in hex format + - `role`: role of user currently only "none" or "admin" + - `username`: not used yet - `session_id`: session_id for new session ## Send E-Mails diff --git a/login_server/src/cpp/JSONInterface/JsonLoginViaEmailVerificationCode.cpp b/login_server/src/cpp/JSONInterface/JsonLoginViaEmailVerificationCode.cpp index 861969946..fcbd7ba07 100644 --- a/login_server/src/cpp/JSONInterface/JsonLoginViaEmailVerificationCode.cpp +++ b/login_server/src/cpp/JSONInterface/JsonLoginViaEmailVerificationCode.cpp @@ -53,18 +53,20 @@ Poco::JSON::Object* JsonLoginViaEmailVerificationCode::handle(Poco::Dynamic::Var result->set("session_id", session->getHandle()); result->set("email_verification_code_type", model::table::EmailOptIn::typeToString(session->getEmailVerificationType())); Poco::JSON::Array info; - - if (!session->getNewUser()->getModel()->getPasswordHashed()) { - info.add("user hasn't password"); + auto user = session->getNewUser(); + + if (!user->getModel()->getPasswordHashed()) { + info.add("user has no password"); } auto update_email_verification_result = session->updateEmailVerification(code); if (1 == update_email_verification_result) { info.add("email already activated"); } + result->set("user", user->getJson()); result->set("info", info); return result; -} \ No newline at end of file +} diff --git a/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp b/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp index 401f46e41..07aa9e1d3 100644 --- a/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp +++ b/login_server/src/cpp/JSONInterface/JsonUnsecureLogin.cpp @@ -102,6 +102,7 @@ Poco::JSON::Object* JsonUnsecureLogin::handle(Poco::Dynamic::Var params) case USER_COMPLETE: case USER_EMAIL_NOT_ACTIVATED: result->set("state", "success"); + result->set("user", session->getNewUser()->getJson()); result->set("session_id", session->getHandle()); session->setClientIp(mClientIP); return result;