Code with Finding: |
class ServerInputProcessor {
private void processTransferSA() throws ConnectionException {
Connection conn = DBManager.getConnection();
String[] userInfo = DatabaseAdmin.getUserInfo(conn, user);
// check if user is SA
if (userInfo[3].equals("sa")) {
List<String> groupAdmins = DatabaseAdmin.getAdminsOfGroup(conn, user);
boolean transferableUser = false;
String toChange = "";
String command = "";
while (!transferableUser) {
command += SocialNetworkAdmin.displaySATransferableUsers(groupAdmins);
sendWithNonce(command);
toChange = recvWithNonce().toLowerCase();
if (toChange.equals("cancel")) {
sendWithNonce(CANCEL);
return;
}
if (groupAdmins.contains(toChange)) {
transferableUser = true;
}
if (!transferableUser) {
command = "print Cannot transfer SA role to " + toChange + ";";
}
}
// toChange is an admin that can have SA transferred to
command = SocialNetworkAdmin.transferSA(conn, user, toChange);
sendWithNonce(command);
} else {
sendWithNonce(INVALID + HELP);
}
DBManager.closeConnection(conn);
}
}
|