package org.ngbw.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import org.ngbw.sdk.common.util.StringUtils; import org.ngbw.sdk.database.ConnectionManager; import org.ngbw.sdk.database.DriverConnectionSource; import org.ngbw.sdk.database.User; /** * * @author Paul Hoover * @author Tony Chen */ public class UserCanSubmit { public static void main ( String[] args ) { try { if (args.length < 1) { throw new Exception("usage: UserCanSubmit username [0|1|true|false|yes|no]"); } ConnectionManager.setConnectionSource(new DriverConnectionSource()); List users = new ArrayList(); if (args[0].indexOf('*') < 0) { User user = User.findUser(args[0]); if (user == null) { throw new Exception("Couldn't find a user with username " + args[0]); } users.add(user); } else { String namePattern = args[0].replace('*', '%'); Connection dbConn = ConnectionManager.getConnectionSource().getConnection(); Statement selectStmt = null; ResultSet rows = null; try { selectStmt = dbConn.createStatement(); rows = selectStmt.executeQuery( "SELECT user_id " + "FROM users " + "WHERE username LIKE '" + namePattern + "'" ); while (rows.next()) { long userId = rows.getLong(1); users.add(new User(userId)); } } finally { dbConn.close(); } } for (User user : users) { boolean canSubmit; if (args.length > 1) { // StringUtils.toBoolean(String, Boolean) can parse all strings and chars which // have the same sematic like 'Yes,' 'True,' '1' etc. canSubmit = StringUtils.toBoolean(args[1], false); //Boolean.parseBoolean(args[1]); user.setCanSubmit(canSubmit); user.save(); } canSubmit = user.canSubmit(); System.out.println("Task submission " + (canSubmit ? "enabled" : "disabled") + " for user " + user.getUsername()); } } catch ( Exception err ) { System.out.println(err.toString()); err.printStackTrace(System.err); System.exit(-1); } } }