package is.idega.idegaweb.golf.service;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: idega multimedia
* @author <a href="mailto:aron@idega.is">aron@idega.is</a>
* @version 1.0
*/
import is.idega.idegaweb.golf.access.LoginTable;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberHome;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
import java.sql.SQLException;
import javax.ejb.FinderException;
import com.idega.data.IDOLookup;
import com.idega.idegaweb.IWBundle;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.Editor;
import com.idega.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.Table;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CloseButton;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.PasswordInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
public class MemberLogin extends Editor{
Member eMember = null;
UnionMemberInfo eUMI = null;
String sUnionId = null;
String OkImageUrl = "/pics/formtakks/ok.gif";
String CloseImageUrl = "/pics/formtakks/close.gif";
String errorMsg = "";
private final static String IW_BUNDLE_IDENTIFIER="is.idega.idegaweb.golf.block.login";
protected IWResourceBundle iwrb;
protected IWBundle iwb;
public String getBundleIdentifier(){
return IW_BUNDLE_IDENTIFIER;
}
public MemberLogin(){
}
protected void control(IWContext modinfo){
iwrb = getResourceBundle(modinfo);
String member_id = modinfo.getParameter("member_id");
String union_id = modinfo.getParameter("union_id");
sUnionId = union_id;
this.makeView();
this.setTextFontBold(true);
if(member_id != null && union_id != null){
try{
eMember = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id));
String userlogin = null;
boolean check = false;
if(modinfo.getParameter("ok")!=null || modinfo.getParameter("ok.x")!=null ){
check = doAddTo(modinfo,eMember.getID());
}
userlogin = this.getUsrLogin(eMember.getID());
this.addLinks(formatText(iwrb.getLocalizedString("login","A�gangsor�")));
this.addMain(doView(eMember,userlogin));
this.addToHeader(getMsgText(this.errorMsg));
this.setBorder(2);
}
catch(SQLException sql){
errorMsg = "sql error";}
catch(FinderException fe){errorMsg = "sql error";}
}
else
errorMsg =(iwrb.getLocalizedString("empty","enginn valinn"));
}
private Text getMsgText(String msg){
Text t = formatText(msg);
t.setFontColor("#FF0000");
return t;
}
protected PresentationObject makeLinkTable(int menuNr){
return new Text("");
}
private String getUsrLogin(int mbid)throws SQLException{
String userLogin = getUserLogin(mbid);
if(userLogin != null)
return userLogin;
else
return iwrb.getLocalizedString("notexist","Ekkert til");
}
private boolean doAddTo(IWContext modinfo,int iMemberId){
String sLogin = modinfo.getParameter("ml.usrlgn");
String sPasswd = modinfo.getParameter("ml.psw1");
String sConfirm = modinfo.getParameter("ml.psw2");
boolean register = false;
if(sLogin != null && sPasswd != null && sConfirm != null){
if(sLogin.length() > 0 && sPasswd.length() > 0 && sConfirm.length() > 0){
try{
register = registerMemberLogin(iMemberId,sLogin,sPasswd,sConfirm);
}
catch(SQLException sql){
sql.printStackTrace();
register = false;
errorMsg = "Error in database";
}
}
else
this.errorMsg = iwrb.getLocalizedString("emptyfields","Vantar � Reiti");
}
return register;
}
private PresentationObject doView(Member member,String sUserLogin){
Table T = new Table();
T.add(formatText(member.getName()),1,1);
String kt = member.getSocialSecurityNumber()!=null?member.getSocialSecurityNumber():"engin";
T.add(formatText(kt),1,2);
TextInput tUsrLgn = new TextInput("ml.usrlgn",sUserLogin);
this.setStyle(tUsrLgn);
PasswordInput psw1 = new PasswordInput("ml.psw1");
this.setStyle(psw1);
PasswordInput psw2 = new PasswordInput("ml.psw2");
this.setStyle(psw2);
T.add(formatText(iwrb.getLocalizedString("login","Notandanafn")),1,3);
T.add(tUsrLgn,1,4);
T.add(formatText(iwrb.getLocalizedString("password","Lykilor�")),1,5);
T.add(psw1,1,6);
T.add(formatText(iwrb.getLocalizedString("confirm","Sta�festing")),1,7);
T.add(psw2,1,8);
SubmitButton ok = new SubmitButton(new Image(OkImageUrl),"ok");
CloseButton close = new CloseButton(new Image(CloseImageUrl));
T.add(ok,1,9);
T.add(close,1,9);
T.add(new HiddenInput("member_id",String.valueOf(member.getID())));
T.add(new HiddenInput("union_id",String.valueOf(sUnionId)));
Form myForm = new Form();
myForm.add(T);
return myForm;
}
public boolean registerMemberLogin(int member_id,String user_login,String user_pass_one,String user_pass_two) throws SQLException {
boolean returner = false;
if (user_pass_one.equals(user_pass_two)) {
LoginTable[] logTable = (LoginTable[]) ((LoginTable) IDOLookup.instanciateEntity(LoginTable.class)).findAllByColumnEquals("USER_LOGIN",user_login);
if (logTable.length == 0) {
LoginTable logT = (LoginTable) IDOLookup.createLegacy(LoginTable.class);
logT.setMemberId(member_id);
logT.setUserLogin(user_login);
logT.setUserPassword(user_pass_one);
logT.insert();
returner = true;
errorMsg = iwrb.getLocalizedString("newmade","N�tt sm��a�");
}
else if (logTable.length == 1) {
if (logTable[0].getMemberId() == member_id ) {
logTable[0].setMemberId(member_id);
logTable[0].setUserLogin(user_login);
logTable[0].setUserPassword(user_pass_one);
logTable[0].update();
returner = true;
errorMsg = iwrb.getLocalizedString("updated","Uppf�rt");
}
else
errorMsg = iwrb.getLocalizedString("alreadyexist","Er �egar til");
returner = false;
}
else {
returner = false;
errorMsg = iwrb.getLocalizedString("nonexist","Engin til");
}
}
else
errorMsg = iwrb.getLocalizedString("wrongconfirm","R�ng sta�festing");
return returner;
}
public String getUserLogin(int iMemberId)throws SQLException{
LoginTable[] logins = (LoginTable[])((LoginTable)IDOLookup.instanciateEntity(LoginTable.class)).findAllByColumnEquals("MEMBER_ID",iMemberId);
if(logins != null && logins.length > 0)
return logins[0].getUserLogin();
else
return null;
}
}