1
0
Fork 0

Handle non-existing user config in RestUserHandler (#3200)

* handle non-existing user config

* fixing possible error with user data
This commit is contained in:
Simon Grätzer 2017-09-04 18:01:30 +02:00 committed by Frank Celler
parent da4d7966a8
commit 06f5cefd9f
2 changed files with 6 additions and 6 deletions

View File

@ -147,12 +147,12 @@ RestStatus RestUsersHandler::getRequest(AuthInfo* authInfo) {
} else if (suffixes[1] == "config") {
//_api/user/<user>//config
VPackBuilder data = authInfo->getConfigData(user);
VPackSlice resp = data.slice();
if (suffixes.size() == 3) {
generateSuccess(ResponseCode::OK, data.slice().get(suffixes[2]));
} else {
generateSuccess(ResponseCode::OK, data.slice());
resp = data.slice().get(suffixes[2]);
}
generateSuccess(ResponseCode::OK,
resp.isNone() ? VPackSlice::nullSlice() : resp);
} else {
generateError(ResponseCode::BAD, TRI_ERROR_BAD_PARAMETER);
}

View File

@ -625,7 +625,7 @@ Result AuthInfo::removeAllUsers() {
VPackBuilder AuthInfo::getConfigData(std::string const& username) {
loadFromDB();
VPackBuilder bb = QueryUser(_queryRegistry, username);
return VPackBuilder(bb.slice().get("configData"));
return bb.isEmpty() ? bb : VPackBuilder(bb.slice().get("configData"));
}
Result AuthInfo::setConfigData(std::string const& user,
@ -652,7 +652,7 @@ Result AuthInfo::setConfigData(std::string const& user,
VPackBuilder AuthInfo::getUserData(std::string const& username) {
loadFromDB();
VPackBuilder bb = QueryUser(_queryRegistry, username);
return VPackBuilder(bb.slice().get("userData"));
return bb.isEmpty() ? bb : VPackBuilder(bb.slice().get("userData"));
}
Result AuthInfo::setUserData(std::string const& user,