| Code with Finding: |
class SocialNetworkAdmin {
public static String regRequests(Connection conn, String username) {
String command = "";
List<String> pendingUsers = DatabaseAdmin.getRegRequestList(conn, username);
if (pendingUsers == null) {
command = "print Database error. Please contact System Admin.;";
} else if (pendingUsers.size() == 0) {
command = "print No pending registration requests at the moment.;";
} else {
command = "print Pending User Registration Requests ("
+ pendingUsers.size() + "):;";
for (String u: pendingUsers) {
command = command + "print " + u + ";";
}
command += "print ;print [To approve: approve "
+ "<username1>, <username2>];print [To remove: "
+ "remove <username1>, <username2>];askForInput;";
}
return command;
}
}
class SocialNetworkAdmin {
public static String friendRequests(Connection conn, String username) {
String command = "";
List<String> pendingFriends = DatabaseAdmin.getFriendRequestList(conn, username);
if (pendingFriends == null) {
command = "print Database error. Please contact System Admin.;";
} else if (pendingFriends.size() == 0) {
command = "print No pending friend requests at the moment.;";
} else {
command = "print Pending Friend Requests (" + pendingFriends.size() + "):;";
for (String f: pendingFriends) {
command = command + "print " + f + ";";
}
command += ";print ;print [To approve: approve "
+ "<username1>, <username2>];print [To remove: "
+ "remove <username1>, <username2>];askForInput;";
}
return command;
}
}
class SocialNetworkAdmin {
public static String regApprove(Connection conn, String username) {
String success = "print "+username+" has been added to the system.;";
String error = "print Database error occurred while approving registration for " +
username + ". Please try again or contact the System Admin.;";
String[] userInfo = DatabaseAdmin.getRegUserInfo(conn, username);
if (userInfo == null) {
if (DEBUG) System.err.println("regApprove: userInfo returned null");
return error;
}
String pwhash = userInfo[1];
int aid = Integer.parseInt(userInfo[2]);
String secanswer = userInfo[3];
try {
conn.setAutoCommit(false);
} catch (SQLException e) {
if (DEBUG) System.err.println("regApprove: turning off auto commit failed.");
return error;
}
int deleteStatus = DatabaseAdmin.deleteRegRequest(conn, username);
int addStatus = DatabaseAdmin.addUser(conn, username, pwhash, aid, secanswer);
if (DEBUG) System.out.println("Going into addFriendsFromGroup");
int addFriendStatus = DatabaseAdmin.addFriendsFromGroup(conn, username, aid);
if (deleteStatus != 1 || addStatus != 1 || addFriendStatus <= 0) {
DBManager.rollback(conn);
DBManager.trueAutoCommit(conn);
if (DEBUG) System.err.printf("regApprove: DB operations failed. " +
"deleteStatus: %d, addStatus: %d, addFriendStatus: %d\n", deleteStatus, addStatus, addFriendStatus);
return error;
} else {
try {
conn.commit();
DBManager.trueAutoCommit(conn);
return success;
} catch (SQLException e) {
DBManager.trueAutoCommit(conn);
if (DEBUG) e.printStackTrace();
return error;
}
}
}
}
class SocialNetworkAdmin {
public static String displayGroupList(Connection conn, Map<Integer, String> groupList, String newUser) {
String list = "";
if (groupList == null || groupList.size() == 0) {
list = EMPTY_LIST;
} else {
Iterator<Entry<Integer, String>> it = groupList.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> pairs = (Map.Entry<Integer, String>)it.next();
list += "print " + pairs.getKey() + " " + pairs.getValue() + ";";
}
}
return "print Choose a cappella group for " + newUser
+ " by entering the group number:;" + list + "askForInput;";
}
}
|