/* ** Modify a user's information ** Class: ModifyUser ** Author: Yuping Zhu ** Date: 11-02-1999 ** Modified by Yuping Zhu on 03-08-2000 */ package ascdb.users; // import package java.sql to use JDBC import java.sql.*; // import package oracle.html to generate dynamic HTML page import oracle.html.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.text.SimpleDateFormat; import java.util.TimeZone; import ascdb.conf; import ascdb.users.UserValidation; public class ModifyUser extends HttpServlet { // private HtmlStringBuffer HTMLBuf = new HtmlStringBuffer(); private String uid; private conf dbconf; public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Output HTML page header res.setContentType("text/html"); PrintWriter out = res.getWriter(); dbconf = new conf(req); uid = req.getParameter("uid"); UserValidation UserV = new UserValidation(); try { if (! UserV.UserLogin(uid,req)) { out.println(""); out.println("You are logout, you need to login again!"); BackHome(out); return; } int TabRow = UserV.Validation(req); // out.println(TabRow + " " + UserV.UserId()); if (TabRow == 0) { out.println(" You are not TMD user!"); BackHome(out); return; } else if (TabRow == 1) { out.println("You need correct password to login!"); BackHome(out); return; } out.println(HTMLString()); } catch (ClassNotFoundException e) { out.println("Can not load JDBC Driver!"); } catch (SQLException e) { out.println(e.getMessage()); return; } } private HtmlStringBuffer HTMLString() throws ClassNotFoundException,SQLException { HtmlStringBuffer HTMLBuf = new HtmlStringBuffer(); HTMLBuf.appendln(""); HTMLBuf.appendln(""); HTMLBuf.appendln("ASC TMD User Modification Form"); // append JavaScript HTMLBuf.append(JSValidation()); HTMLBuf.appendln(""); HTMLBuf.append("
"); // append form HTMLBuf.append(UserForm()); return HTMLBuf; } private Script JSValidation() { //Create a JavaScript Object Script js = new Script("JavaScript"); js.setCode("function Validation(form) {\n" + " if (myEmpty(form.firstname)) {\n" + " ErrorMsg(\"First Name\")\n" + " return false\n" + " }\n" /* + " if (! form.B_type[0].selected) {\n" + " alert(\"OK!\")\n" + " return false\n" + " }\n"*/ + " if (myEmpty(form.lastname)) {\n" + " ErrorMsg(\"Last Name\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.address)) {\n" + " ErrorMsg(\"Address\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.city)) {\n" + " ErrorMsg(\"City\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.zip)) {\n" + " ErrorMsg(\"Zip\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.phone)) {\n" + " ErrorMsg(\"Phone\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.email)) {\n" + " ErrorMsg(\"Email\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.b_name)) {\n" + " ErrorMsg(\"Business Name\")\n" + " return false\n" + " }\n" + " if (! form.userType[3].selected) {\n" + " if (myEmpty(form.s_f_name)) {\n" + " ErrorSponsor(\"First Name\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.s_l_name)) {\n" + " ErrorSponsor(\"Last Name\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.s_phone)) {\n" + " ErrorSponsor(\"Phone\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.s_email)) {\n" + " ErrorSponsor(\"Email\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.s_address)) {\n" + " ErrorSponsor(\"Address\")\n" + " return false\n" + " }\n" + " if (myEmpty(form.s_city )) {\n" + " ErrorSponsor(\"City\")\n" + " return false\n" + " }\n" + " }\n" + " return true\n\n" + "}\n\n" + "function myEmpty(str) {\n" + " var typein = new String(str.value)\n" + " if (typein.length == 0) return true\n" + " while(typein.charCodeAt(0) == 32)\n" + " typein = typein.substring(1)\n" + " if (typein.length == 0) return true\n" + " return false\n" + "}\n\n" + "function ErrorMsg(err) {\n" + " alert(\"Your \" + err + \" was blank, Please go back to the form to correct it!\")\n" + "}\n\n" + "function ErrorSponsor(err) {\n" + " alert(\"Since your Employment is not DoD, you must provide Sponsor Information. Sponsor's \" + err + \" was blank. Please go back to the form and correct the error.\")\n" + "}\n"); return js; } private HtmlBody UserForm() throws ClassNotFoundException,SQLException { //Create an HtmlBody Object HtmlBody bd = new HtmlBody(); // Sets various attributes of HtmlBody bd.setBackgroundColor("#ffffe6"); // Load the Oracle JDBC driver Class.forName (dbconf.JdbcDriver); // Connect to the database Connection conn = DriverManager.getConnection (dbconf.ConnectStr,dbconf.DBName,dbconf.DBPassword); // Create a Statement Statement stmt = conn.createStatement (); Statement stmt1 = conn.createStatement (); // Fetch the user's information from DB ResultSet rset = stmt.executeQuery("select * from user_info where oracle_uid = '" + uid + "'"); if ( ! rset.next()) { bd.addItem(new SimpleItem("No such User!")); return bd; } bd .addItem(new SimpleItem("TMD User " + uid + "'s Information").setBold().setFontSize(5).setCenter()) .addItem(new SimpleItem("Now you can modify your user information... ").setBold().setItal().setFontColor(Color.olive).setFontSize(3)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("(Required fields are marked *)").setBold().setItal().setFontColor(Color.red).setFontSize(3)) .addItem(SimpleItem.LineBreak) .addItem(new Image(dbconf.ImageBase + "wavy.gif")) .addItem(SimpleItem.Paragraph); String Oldtit = rset.getString("surtitle"); int titfg = 0; ResultSet SurtitleRset = stmt1.executeQuery("select * from domain where domain_name='SURTITLES' order by order_num asc"); Select Surtitle = new Select("surtitle"); while (SurtitleRset.next()) if (Oldtit.equals(SurtitleRset.getString("char_code"))) { titfg = 1; Surtitle.addOption(new Option(Oldtit,Oldtit,true)); } else Surtitle.addOption(new Option(SurtitleRset.getString("char_code"))); if (titfg == 0) Surtitle.addOption(new Option("Surtitle*","surtit",true)); else Surtitle.addOption(new Option("Surtitle*","surtit",false)); bd.addItem(Surtitle); SurtitleRset.close(); bd .addItem(new SimpleItem("First Name*: ").setBold()) .addItem(new TextField("firstname", 35, 15,rset.getString("first_nam"))) .addItem(new SimpleItem("Middle Name: ").setBold()) .addItem(new TextField("middlename", 35, 15,rset.getString("middle_nam"))) .addItem(new SimpleItem("Last Name*: ").setBold()) .addItem(new TextField("lastname", 35, 15,rset.getString("last_nam"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Primary Street Address*: ").setBold()) .addItem(new TextField("address",50,30,rset.getString("address"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Secondary Address: ").setBold()) .addItem(new TextField("address2",50,30,rset.getString("address2"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Room Number: ").setBold()) .addItem(new TextField("room",10,10,rset.getString("room_num"))) .addItem(new SimpleItem("Mail Stop: ").setBold()) .addItem(new TextField("mail", 20, 20, rset.getString("mail_stop"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("City*: ").setBold()) .addItem(new TextField("city",30,30,rset.getString("city"))) .addItem(new SimpleItem("State*: ").setBold()); String OldState= rset.getString("state"); ResultSet StateRset = stmt1.executeQuery("select * from domain where domain_name='STATES' order by expsn asc"); Select StateSelect = new Select("state"); while (StateRset.next()) if (OldState.equals((StateRset.getString("expsn")).trim())) StateSelect.addOption(new Option(OldState,OldState,true)); else StateSelect.addOption(new Option(StateRset.getString("expsn"))); bd.addItem(StateSelect); StateRset.close(); bd .addItem(new SimpleItem("Zip Code*: ").setBold()) .addItem(new TextField("zip", 11, 11, rset.getString("zip"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Country*: ").setBold()); String OldCountry = rset.getString("country"); ResultSet CRset = stmt1.executeQuery("select * from domain where domain_name='COUNTRIES' order by order_num asc"); Select CountrySelect = new Select("country"); while (CRset.next()) if (OldCountry.equals(CRset.getString("char_code"))) CountrySelect.addOption(new Option(CRset.getString("expsn"),CRset.getString("expsn"),true)); else CountrySelect.addOption(new Option(CRset.getString("expsn"))); bd .addItem(CountrySelect) .addItem(SimpleItem.LineBreak); CRset.close(); bd .addItem(new SimpleItem("Phone*: ").setBold()) .addItem(new TextField("phone", 15, 15, rset.getString("phone"))) .addItem(new SimpleItem("Phone Extension: ").setBold()) .addItem(new TextField("ext", 5, 5, rset.getString("phone_ext"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Alternate Phone: ").setBold()) .addItem(new TextField("alt_phone", 15, 15, rset.getString("alt_phone"))) .addItem(new SimpleItem("FAX: ").setBold()) .addItem(new TextField("fax", 15, 15, rset.getString("fax"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Email Address*:").setBold()) .addItem(new TextField("email", 50, 50, rset.getString("email"))) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Would you like your email address to be shared with other attendees?*").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Yes")); if ((rset.getString("share_email")).equals("Y")) bd.addItem(new Radio("shared","Y",true)) .addItem(new SimpleItem("No")) .addItem(new Radio("shared","N")); else bd.addItem(new Radio("shared","Y")) .addItem(new SimpleItem("No")) .addItem(new Radio("shared","N",true)); bd .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Would you like us to add your email address to our ASC PET mailing list?* ").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Yes")); if ((rset.getString("list_email")).equals("Y")) bd .addItem(new Radio("list","Y",true)) .addItem(new SimpleItem("No")) .addItem(new Radio("list","N")); else bd .addItem(new Radio("list","Y")) .addItem(new SimpleItem("No")) .addItem(new Radio("list","N",true)); bd .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Which is your Computational Technology Area (CTA)?").setBold()) .addItem(SimpleItem.LineBreak); ResultSet PCta = stmt1.executeQuery("select cta from student_ctas where student_uid ='" + uid + "' and type='PRIMARY'"); String OldPCta; if (PCta.next()) OldPCta = PCta.getString(1); else OldPCta = "N/A"; PCta.close(); ResultSet CTAset = stmt1.executeQuery("select * from domain where domain_name='CTAS' order by order_num asc"); Select CTAs = new Select("cta"); while (CTAset.next()) if (((CTAset.getString("expsn")).indexOf(OldPCta)) == 0) CTAs.addOption(new Option(CTAset.getString("expsn"),CTAset.getString("expsn"),true)); else CTAs.addOption(new Option(CTAset.getString("expsn"))); bd .addItem(CTAs) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("What other CTAs do you have interest in?(Choose all that apply.)").setBold()) .addItem(SimpleItem.LineBreak); CTAset.close(); ResultSet CTAset2 = stmt1.executeQuery("select * from domain where domain_name='CTAS' order by order_num asc"); Select CTAs2 = new Select("cta2",4,true); Statement stmt2 = conn.createStatement(); while (CTAset2.next()) { int fg = 0; ResultSet PCtas = stmt2.executeQuery("select cta from student_ctas where student_uid ='" + uid + "' and type is NULL"); while(PCtas.next()) if ((CTAset2.getString("expsn")).indexOf(PCtas.getString(1)) == 0) { fg = 1; break; } if (fg == 1) CTAs2.addOption(new Option(CTAset2.getString("expsn"),CTAset2.getString("expsn"),true)); else CTAs2.addOption(new Option(CTAset2.getString("expsn"))); PCtas.close(); } bd .addItem(CTAs2) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("List special needs (e.g., mobility impaired):").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new TextArea("comments", 60,3)) .addItem(SimpleItem.LineBreak); CTAset2.close(); ResultSet CountryRset = stmt1.executeQuery("select * from domain where domain_name='COUNTRIES' order by order_num asc"); String OldCitizen = rset.getString("citizenship"); bd.addItem(new SimpleItem("What is your country of citizenship?*: ").setBold()); Select Country = new Select("citizenship"); while (CountryRset.next()) if (OldCitizen.equals(CountryRset.getString("expsn"))) Country.addOption(new Option(CountryRset.getString("expsn"),CountryRset.getString("expsn"),true)); else Country.addOption(new Option(CountryRset.getString("expsn"))); bd .addItem(Country) .addItem(SimpleItem.LineBreak); CountryRset.close(); bd .addItem(new SimpleItem("** Please note: All ASC MSRC students must meet citizenship requiremens as per")) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("\"Foreign National Access to the ASC MSRC\" document.").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Permit Type").setBold()); ResultSet PermitRset = stmt1.executeQuery("select * from domain where domain_name='PERMIT TYPES' order by order_num asc"); Select Permit = new Select("permit"); while (PermitRset.next()) if ((PermitRset.getString("char_code")).equals(rset.getString("permit_type"))) Permit.addOption(new Option(PermitRset.getString("char_code"),PermitRset.getString("char_code"),true)); else Permit.addOption(new Option(PermitRset.getString("char_code"))); PermitRset.close(); // Get Timezone TimeZone tz = TimeZone.getTimeZone("EST"); SimpleDateFormat df = new SimpleDateFormat ("dd/MM/yyyy"); df.setTimeZone(tz); String dateString = ""; if (rset.getDate("expiration_date") != null) dateString = df.format(rset.getDate("expiration_date")); bd .addItem(Permit) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Permit Number").setBold()) .addItem(new TextField("p_num",20,20,rset.getString("permit_num"))) .addItem(new SimpleItem("Expiration Date (dd/mm/yyyy) ").setBold()) .addItem(new TextField("exp_date",20,20,dateString)) .addItem(SimpleItem.LineBreak); String OldNac = rset.getString("nac_type"); bd.addItem(new SimpleItem("Do you have a NAC or Security Clearance? ").setBold()); ResultSet NacSet = stmt1.executeQuery("select * from domain where domain_name='NAC TYPES' order by order_num asc"); Select Nac = new Select("nac_type"); while( NacSet.next()) if (OldNac.equals(NacSet.getString("char_code"))) Nac.addOption(new Option(NacSet.getString("char_code"),NacSet.getString("char_code"),true)); else Nac.addOption(new Option(NacSet.getString("char_code"))); bd .addItem(Nac) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("What is your Business Types?* ").setBold()); NacSet.close(); String OldB = rset.getString("business_type"); ResultSet Brset = stmt1.executeQuery("select * from domain where domain_name='BUSINESS TYPES' order by order_num asc"); Select Business = new Select("B_type"); while(Brset.next()) if (OldB.equals(Brset.getString("char_code"))) Business.addOption(new Option(Brset.getString("char_code"),Brset.getString("char_code"),true)); else Business.addOption(new Option(Brset.getString("char_code"))); bd .addItem(Business) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("What is your Business Name?* ").setBold()) .addItem(new TextField("b_name",50,50,rset.getString("business_name"))) .addItem(SimpleItem.LineBreak); Brset.close(); bd.addItem(new SimpleItem("What is your User Type?*: ").setBold()); String OlduserType = rset.getString("user_type"); ResultSet UtypeSet = stmt1.executeQuery("select * from domain where domain_name = 'USER TYPES' order by order_num"); Select Utype = new Select("userType"); while (UtypeSet.next()) if (OlduserType.equals(UtypeSet.getString("char_code"))) Utype.addOption(new Option(UtypeSet.getString("char_code"),UtypeSet.getString("char_code"),true)); else Utype.addOption(new Option(UtypeSet.getString("char_code"))); bd .addItem(Utype) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Provide 4-digit number only you and the TMD administrator will know in case you forget your password and need it reset: ").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new TextField("ssn",4,4,rset.getString("ssan_last4"))) .addItem(SimpleItem.Paragraph); // ResultSet Sponrset; String spon_uid = rset.getString("spons_agency_uid"); // if (spon_uid.length() != 0) ResultSet Sponrset = stmt1.executeQuery("select * from users where oracle_uid='" + spon_uid + "'"); String slname = ""; String sfname = ""; String sphone = ""; String sext = ""; String sfax = ""; String semail = ""; String sorg = ""; String stit = ""; String smname = ""; String saddr = ""; String szip = ""; String scity = ""; String sstate = ""; String salt = ""; String smail = ""; String sroom = ""; String addr_id = ""; String scountry = ""; if (Sponrset.next()) { slname = Sponrset.getString("last_nam"); sfname = Sponrset.getString("first_nam"); smname = Sponrset.getString("middle_nam"); sphone = Sponrset.getString("phone"); sext = Sponrset.getString("phone_ext"); sfax = Sponrset.getString("fax"); semail = Sponrset.getString("email"); sorg = Sponrset.getString("organization"); smail = Sponrset.getString("mail_stop"); salt = Sponrset.getString("alt_phone"); addr_id = Sponrset.getString("address_id"); sroom = Sponrset.getString("room_num"); } ResultSet addrRset = stmt1.executeQuery("select * from addresses where address_id ='" + addr_id + "'"); if (addrRset.next()) { saddr = addrRset.getString("address"); scity = addrRset.getString("city"); szip = addrRset.getString("zip"); sstate = addrRset.getString("state"); scountry = addrRset.getString("country"); } bd .addItem(new Image(dbconf.ImageBase + "wavy.gif")) .addItem(SimpleItem.Paragraph) .addItem(new SimpleItem("IF APPLICANT IS NOT A DOD EMPLOYEE, COMPLETE THE FOLLOWING SECTION:").setBold()) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Sponsor Information:").setBold().setFontColor(Color.red).setFontSize(3)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Sponsor's Organization*").setBold()); ResultSet orgSet = stmt1.executeQuery("select * from domain where domain_name='ORGANIZATIONS' order by order_num asc"); Select orgS = new Select("org"); while (orgSet.next()) if ((orgSet.getString("char_code")).equals(sorg)) orgS.addOption(new Option(sorg,sorg,true)); else orgS.addOption(new Option(orgSet.getString("char_code"))); bd .addItem(orgS) .addItem(SimpleItem.LineBreak); ResultSet SurRset = stmt1.executeQuery("select * from domain where domain_name='SURTITLES' order by order_num asc"); Select Surtit = new Select("s_surtitle"); while (SurRset.next()) if ((SurRset.getString("char_code")).equals(stit)) Surtit.addOption(new Option(stit,stit,true)); else Surtit.addOption(new Option(SurRset.getString("char_code"))); Surtit.addOption(new Option("Surtitle*","surtit",false)); bd .addItem(Surtit) .addItem(new SimpleItem("First Name*: ").setBold()) .addItem(new TextField("s_f_name",35,15,sfname)) .addItem(new SimpleItem("Middle Name: ").setBold()) .addItem(new TextField("s_m_name",35,15,smname)) .addItem(new SimpleItem("Last Name*: ").setBold()) .addItem(new TextField("s_l_name",35,15,slname)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Primary Street Address*: ").setBold()) .addItem(new TextField("s_address",50,50,saddr)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Secondary Address: ").setBold()) .addItem(new TextField("s_address2",50,50,"")) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Room Number: ").setBold()) .addItem(new TextField("s_room",10,10,sroom)) .addItem(new SimpleItem("Mail Stop: ").setBold()) .addItem(new TextField("s_mail", 20, 20, smail)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("City*: ").setBold()) .addItem(new TextField("s_city",30,20,scity)) .addItem(new SimpleItem("State*: ").setBold()); StateRset = stmt1.executeQuery("select * from domain where domain_name='STATES' order by expsn asc"); Select s_StateSelect = new Select("s_state"); while (StateRset.next()) if ((StateRset.getString("expsn")).equals(sstate)) s_StateSelect.addOption(new Option(sstate,sstate,true)); else s_StateSelect.addOption(new Option(StateRset.getString("expsn"))); bd .addItem(s_StateSelect) .addItem(new SimpleItem("Zip Code*: ").setBold()) .addItem(new TextField("s_zip", 11, 11, szip)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Country*: ").setBold()); ResultSet s_CRset = stmt1.executeQuery("select * from domain where domain_name='COUNTRIES' order by order_num asc"); Select s_CountrySelect = new Select("s_country"); while (s_CRset.next()) if ((s_CRset.getString("expsn")).equals(scountry)) s_CountrySelect.addOption(new Option(scountry,scountry,true)); else s_CountrySelect.addOption(new Option(s_CRset.getString("expsn"))); bd .addItem(s_CountrySelect) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Phone*: ").setBold()) .addItem(new TextField("s_phone", 15, 15, sphone)) .addItem(new SimpleItem("Phone Extension: ").setBold()) .addItem(new TextField("s_ext", 5, 5, sext)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Alternate Phone: ").setBold()) .addItem(new TextField("s_alt_phone", 15, 15, salt)) .addItem(new SimpleItem("FAX: ").setBold()) .addItem(new TextField("s_fax", 15, 15, sfax)) .addItem(SimpleItem.LineBreak) .addItem(new SimpleItem("Email*:").setBold()) .addItem(new TextField("s_email", 50, 50, semail)) .addItem(SimpleItem.Paragraph) .addItem(new Hidden("purpose",rset.getString("purpose"))) .addItem(new Hidden("op","1")) .addItem(new Hidden("uid",uid)) .addItem(new Hidden("msrc_acct",rset.getString("msrc_nam"))) .addItem(SimpleItem.Paragraph) .addItem(new Submit("submit", "Submit Form").setBold()) .addItem(new Reset("Clear").setBold()); return bd; } private void BackHome(PrintWriter out) { out.println(""); out.println(""); } public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet(req,res); } }