}
for (UserConfig conf : confList.values()) {
- addLocalUser(conf);
+ addRemoveLocalUserInternal(conf, false);
}
}
/*
* Interaction with GUI START
*/
- public Status addRemoveLocalUser(UserConfig AAAconf, boolean delete) {
+ private Status addRemoveLocalUser(UserConfig AAAconf, boolean delete) {
// UserConfig Validation check
Status validCheck = AAAconf.validate();
if (!validCheck.isSuccess()) {
return validCheck;
}
+ String user = AAAconf.getUser();
+
+ // Check default admin user
+ if (user.equals(UserManagerImpl.defaultAdmin)) {
+ String msg = "Invalid Request: Default Network Admin User cannot be " + ((delete)? "removed" : "added");
+ logger.debug(msg);
+ return new Status(StatusCode.NOTALLOWED, msg);
+ }
+
+ // Check user presence/conflict
+ StatusCode statusCode = null;
+ String reason = null;
+ if (delete && !localUserConfigList.containsKey(user)) {
+ reason = "not found";
+ statusCode = StatusCode.NOTFOUND;
+ } else if (!delete && localUserConfigList.containsKey(user)) {
+ reason = "already present";
+ statusCode = StatusCode.CONFLICT;
+ }
+ if (statusCode != null) {
+ String msg = String.format("User %s %s in configuration database", user, reason);
+ logger.debug(msg);
+ return new Status(statusCode, msg);
+ }
+
+ return addRemoveLocalUserInternal(AAAconf, delete);
+ }
+
+ private Status addRemoveLocalUserInternal(UserConfig AAAconf, boolean delete) {
// Update Config database
if (delete) {
- if (AAAconf.getUser().equals(UserManagerImpl.defaultAdmin)) {
- String msg = "Invalid Request: Default Network Admin User "
- + "cannot be deleted";
- logger.debug(msg);
- return new Status(StatusCode.NOTALLOWED, msg);
- }
localUserConfigList.remove(AAAconf.getUser());
/*
* A user account has been removed form local database, we assume
*/
removeUserFromActiveList(AAAconf.getUser());
} else {
- if (AAAconf.getUser().equals(UserManagerImpl.defaultAdmin)) {
- String msg = "Invalid Request: Default Network Admin User "
- + "cannot be added";
- logger.debug(msg);
- return new Status(StatusCode.NOTALLOWED, msg);
- }
localUserConfigList.put(AAAconf.getUser(), AAAconf);
}
- return new Status(StatusCode.SUCCESS, null);
+ return new Status(StatusCode.SUCCESS);
}
private Status addRemoveAAAServer(ServerConfig AAAconf, boolean delete) {
remoteServerConfigList.put(AAAconf.getAddress(), AAAconf);
}
- return new Status(StatusCode.SUCCESS, null);
+ return new Status(StatusCode.SUCCESS);
}
private Status addRemoveAuthInfo(AuthorizationConfig AAAconf, boolean delete) {
authorizationConfList.put(AAAconf.getUser(), AAAconf);
}
- return new Status(StatusCode.SUCCESS, null);
+ return new Status(StatusCode.SUCCESS);
}
@Override
if (userName == null || userName.trim().isEmpty()) {
return new Status(StatusCode.BADREQUEST, "Invalid user name");
}
+
if (!localUserConfigList.containsKey(userName)) {
return new Status(StatusCode.NOTFOUND, "User does not exist");
}
+
return addRemoveLocalUser(localUserConfigList.get(userName), true);
}
}
if (success) {
- return new Status(StatusCode.SUCCESS, null);
+ return new Status(StatusCode.SUCCESS);
}
- return new Status(StatusCode.INTERNALERROR,
- "Failed to save user configurations");
+ return new Status(StatusCode.INTERNALERROR, "Failed to save user configurations");
}
@Override