mirror of https://gitee.com/bigwinds/arangodb
Handle non-existing user config in RestUserHandler (#3200)
* handle non-existing user config * fixing possible error with user data
This commit is contained in:
parent
da4d7966a8
commit
06f5cefd9f
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue