1 23 24 package org.infoglue.cms.controllers.usecases.common.impl.simple; 25 26 import org.apache.log4j.Logger; 27 import org.exolab.castor.jdo.Database; 28 import org.exolab.castor.jdo.OQLQuery; 29 import org.exolab.castor.jdo.QueryResults; 30 import org.infoglue.cms.controllers.kernel.impl.simple.BaseUCCController; 31 import org.infoglue.cms.controllers.kernel.impl.simple.CastorDatabaseService; 32 import org.infoglue.cms.controllers.usecases.common.LoginUCC; 33 import org.infoglue.cms.entities.management.SystemUser; 34 import org.infoglue.cms.exception.SystemException; 35 import org.infoglue.cms.util.ConstraintExceptionBuffer; 36 37 public class LoginUCCImpl extends BaseUCCController implements LoginUCC 38 { 39 40 private final static Logger logger = Logger.getLogger(LoginUCCImpl.class.getName()); 41 42 public boolean authorizeSystemUser(String userName, String password) throws SystemException 43 { 44 Database db = CastorDatabaseService.getDatabase(); 45 ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer(); 46 47 boolean isAuthorized = false; 48 49 beginTransaction(db); 50 51 try 52 { 53 OQLQuery oql; 54 55 oql = db.getOQLQuery( "SELECT u FROM org.infoglue.cms.entities.management.impl.simple.SystemUserImpl u WHERE u.userName = $1 AND u.password = $2" ); 56 oql.bind(userName); 57 oql.bind(password); 58 QueryResults results = oql.execute(); 59 if (results.hasMore()) 60 { 61 SystemUser systemUser = null; 62 systemUser = (SystemUser)results.next(); 63 isAuthorized = true; 64 } 65 66 ceb.throwIfNotEmpty(); 68 69 commitTransaction(db); 70 } 71 catch(Exception e) 72 { 73 logger.error("An error occurred so we should not complete the transaction:" + e, e); 74 rollbackTransaction(db); 75 throw new SystemException(e.getMessage()); 76 } 77 78 return isAuthorized; 79 } 80 81 82 } | Popular Tags |