remove function which didn't make sense

This commit is contained in:
einhornimmond 2021-03-23 13:49:39 +01:00
parent 69153e4109
commit fadae2abc7
2 changed files with 19 additions and 24 deletions

View File

@ -152,7 +152,6 @@ POST http://localhost/login_api/getUserInfos
```json
{"session_id": -127182, "email": "max.musterman@gmail.de", "ask": [
"EmailVerificationCode.Register",
"EmailVerificationCode.PasswordReset",
"loginServer.path",
"user.pubkeyhex",
"user.first_name",
@ -166,7 +165,6 @@ returns if no error occured:
```json
{"state": "success", "userData": {
"EmailVerificationCode.Register": "2718271129122",
"EmailVerificationCode.PasswordReset": "28382991827737",
"pubkeyhex": "131c7f68dd94b2be4c913400ff7ff4cdc03ac2bda99c2d29edcacb3b065c67e6",
"first_name": "Max",
"last_name": "Musterman",
@ -180,8 +178,7 @@ returns if no error occured:
```
Return only the fields which are defined in ask
- EmailVerificationCode.Register: return the email verification code for check email (create one if none exist)
- EmailVerificationCode.PasswordReset: return the email verification code for reset password (create one if none exist)
- EmailVerificationCode.Register: return the email verification code for check email (create one if none exist), work only if logged in user is admin and the email isn't from him
- loginServer.path: the redirect path to login-server, for example for login with login-server html frontend
- user.pubkeyhex: public key of user in hex-format
- user.first_name: first name of user

View File

@ -74,17 +74,21 @@ Poco::JSON::Object* JsonGetUserInfos::handle(Poco::Dynamic::Var params)
return customStateError("not found", "session not found");
}
auto user = session->getNewUser();
auto user_model = user->getModel();
if (user_model->getEmail() != email && user_model->getRole() != model::table::ROLE_ADMIN) {
auto session_user = session->getNewUser();
auto session_user_model = session_user->getModel();
bool isAdmin = false;
if (model::table::ROLE_ADMIN == session_user_model->getRole()) {
isAdmin = true;
}
if (session_user_model->getEmail() != email && !isAdmin) {
return customStateError("not same", "email don't belong to logged in user");
}
// reload user to get really the current data, the data in session user are maybe outdated
user = controller::User::create();
auto user = controller::User::create();
if (1 != user->load(email)) {
return customStateError("not found", "user not found");
}
auto userModel = user->getModel();
auto user_model = user->getModel();
Poco::JSON::Object* result = new Poco::JSON::Object;
@ -98,38 +102,32 @@ Poco::JSON::Object* JsonGetUserInfos::handle(Poco::Dynamic::Var params)
std::string parameterString;
try {
parameter.convert(parameterString);
if (parameterString == "EmailVerificationCode.Register") {
auto code = readOrCreateEmailVerificationCode(userModel->getID(), model::table::EMAIL_OPT_IN_REGISTER_DIRECT);
if (parameterString == "EmailVerificationCode.Register" && isAdmin && session_user_model->getEmail() != user_model->getEmail()) {
auto code = readOrCreateEmailVerificationCode(user_model->getID(), model::table::EMAIL_OPT_IN_REGISTER_DIRECT);
if (code) {
jsonUser.set("EmailVerificationCode.Register", std::to_string(code));
}
}
else if (parameterString == "EmailVerificationCode.PasswordReset") {
auto code = readOrCreateEmailVerificationCode(userModel->getID(), model::table::EMAIL_OPT_IN_RESET_PASSWORD);
if (code) {
jsonUser.set("EmailVerificationCode.PasswordReset", std::to_string(code));
}
}
else if (parameterString == "loginServer.path") {
jsonServer.set("loginServer.path", ServerConfig::g_serverPath);
}
else if (parameterString == "user.pubkeyhex") {
jsonUser.set("pubkeyhex", userModel->getPublicKeyHex());
jsonUser.set("pubkeyhex", user_model->getPublicKeyHex());
}
else if (parameterString == "user.first_name") {
jsonUser.set("first_name", userModel->getFirstName());
jsonUser.set("first_name", user_model->getFirstName());
}
else if (parameterString == "user.last_name") {
jsonUser.set("last_name", userModel->getLastName());
jsonUser.set("last_name", user_model->getLastName());
}
else if (parameterString == "user.disabled") {
jsonUser.set("disabled", userModel->isDisabled());
jsonUser.set("disabled", user_model->isDisabled());
}
else if (parameterString == "user.email_checked") {
jsonUser.set("email_checked", userModel->isEmailChecked());
jsonUser.set("email_checked", user_model->isEmailChecked());
}
else if (parameterString == "user.identHash") {
auto email = userModel->getEmail();
auto email = user_model->getEmail();
jsonUser.set("identHash", DRMakeStringHash(email.data(), email.size()));
}
}