package com.pugh.sockso.commands; import com.pugh.sockso.Utils; import com.pugh.sockso.db.Database; import com.pugh.sockso.resources.Locale; import java.sql.PreparedStatement; import java.sql.SQLException; import org.apache.log4j.Logger; public class UserAdmin extends BaseCommand { private Database db; private Locale locale; private static final Logger log = Logger.getLogger( UserAdmin.class ); public UserAdmin( final Database db, final Locale locale ) { this.db = db; this.locale = locale; } public String getName() { return "useradmin"; } public String getDescription() { return "Sets a user to be admin/non-admin"; } /** * Changes a user between admin/non-admin * * @param args * * @return * */ public String execute( final String[] args ) { PreparedStatement st = null; if ( !args[2].matches("1|0") ) { return locale.getString( "con.err.errorUpdatingUser" ); } final int id = Integer.parseInt( args[1] ); final int isAdmin = Integer.parseInt( args[2] ); final String sql = " update users " + " set is_admin = ? " + " where id = ? "; try { st = db.prepare( sql ); st.setInt( 1, isAdmin ); st.setInt( 2, id ); return st.executeUpdate() == 1 ? locale.getString( "con.msg.userUpdated" ) : locale.getString( "con.err.errorUpdatingUser" ); } catch ( final SQLException e ) { log.error( e ); return locale.getString( "com.err.errorUpdatingUser" ); } finally { Utils.close( st ); } } @Override public int getNumArgs() { return 2; } @Override public String[] getArguments() { return new String[] { "ID", "ISADMIN 1/0" }; } }