Author: JirkaM Date: 2010-02-17 16:30:14 +0100 (Wed, 17 Feb 2010) New Revision: 1761 Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserEditBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserListBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLoginBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLostPasswordBean.java Removed: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UserBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UsersBean.java Modified: trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileFrameContent.java trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileType.java trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/mapping/User.hbm.xml trunk/server/elvysCommons/src/elvys/server/bl/user/UserBL.java trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLImpl.java trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLTest.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/auth/J2eeSecurityObject.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/ElvysesCompanyBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileUploadBean.java trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/report/ReportCTRLImpl.java trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/stats/StatsCTRLImpl.java trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml trunk/server/webServer2/WebContent/WEB-INF/faces-navigation.xml trunk/server/webServer2/WebContent/js/components/timeSpinnerComponent.js trunk/server/webServer2/WebContent/secured/userrel/editUserForm.xhtml trunk/server/webServer2/WebContent/template/elvys-template.xhtml Log: * change User Structure - move db code to business layer, separate beans modified elvysCommons/src/cz/elvys/webServer/HIBgen/mapping/User.hbm.xml modified elvysCommons/src/elvys/server/bl/user/UserBL.java modified elvysCommons/src/elvys/server/bl/user/UserBLImpl.java modified elvysCommons/src/elvys/server/bl/user/UserBLTest.java modified webServer2/JavaSource/cz/elvys/webServer/auth/J2eeSecurityObject.java modified webServer2/JavaSource/cz/elvys/webServer/beans/ElvysesCompanyBean.java modified webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListBean.java modified webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java modified webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileUploadBean.java added webServer2/JavaSource/cz/elvys/webServer/beans/user added webServer2/JavaSource/cz/elvys/webServer/beans/user/UserEditBean.java added webServer2/JavaSource/cz/elvys/webServer/beans/user/UserListBean.java added webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLoginBean.java added webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLostPasswordBean.java deleted webServer2/JavaSource/cz/elvys/webServer/beans/UserBean.java deleted webServer2/JavaSource/cz/elvys/webServer/beans/UsersBean.java modified webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties modified webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java modified webServer2/SpringSource/cz/elvys/webServer/toSpring/report/ReportCTRLImpl.java modified webServer2/SpringSource/cz/elvys/webServer/toSpring/stats/StatsCTRLImpl.java modified webServer2/WebContent/js/components/timeSpinnerComponent.js modified webServer2/WebContent/secured/userrel/editUserForm.xhtml modified webServer2/WebContent/template/elvys-template.xhtml modified webServer2/WebContent/WEB-INF/faces-beans.xml modified webServer2/WebContent/WEB-INF/faces-navigation.xml Modified: trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileFrameContent.java =================================================================== --- trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileFrameContent.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileFrameContent.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,5 +1,5 @@ package cz.elvys.webServer.HIBgen; -// Generated 13.2.2010 22:13:08 by Hibernate Tools 3.2.4.GA +// Generated 17.2.2010 15:14:28 by Hibernate Tools 3.2.4.GA import java.util.Set; Modified: trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileType.java =================================================================== --- trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileType.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/FileType.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,5 +1,5 @@ package cz.elvys.webServer.HIBgen; -// Generated 13.2.2010 22:13:08 by Hibernate Tools 3.2.4.GA +// Generated 17.2.2010 15:14:28 by Hibernate Tools 3.2.4.GA import java.util.HashSet; Modified: trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/mapping/User.hbm.xml =================================================================== --- trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/mapping/User.hbm.xml 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/cz/elvys/webServer/HIBgen/mapping/User.hbm.xml 2010-02-17 15:30:14 UTC (rev 1761) @@ -23,6 +23,12 @@ <property name="surname" type="string"> <column name="surname" length="25" not-null="true" /> </property> + <property name="email" type="string"> + <column name="email" length="255" not-null="true" /> + </property> + <property name="phone" type="string"> + <column name="phone" length="45" not-null="false" /> + </property> <property name="password" type="string"> <column name="password" length="40" not-null="true" /> </property> Modified: trunk/server/elvysCommons/src/elvys/server/bl/user/UserBL.java =================================================================== --- trunk/server/elvysCommons/src/elvys/server/bl/user/UserBL.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/elvys/server/bl/user/UserBL.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,17 +1,35 @@ package elvys.server.bl.user; +import java.util.List; + +import org.hibernate.HibernateException; import org.hibernate.Session; +import org.hibernate.Transaction; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.Role; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; import cz.elvys.webServer.toSpring.exception.ExecuteException; public interface UserBL { + public static final int USER_LOGED_FAILURE = 1; + + public List<User> getUserByUserNameAndPasswordMakeSession(String login, String pass) throws ExecuteException; + public List<User> getUserByUserNameAndPassword(String login, String pass, Session sess) throws ExecuteException; - public boolean isUserAuthentizedMakeSession(Integer userId, String pass) throws ExecuteException; + public void saveOrUpdateUser(User user); - public boolean isUserAuthentized(Integer userId, String pass, Session sess) throws ExecuteException; + public List<User> loadAllUsers(int compID,String competency); + public void deleteUser(User user); + public List<Company> loadPermittedCompany(int compID,String competency); + + public List<Role> loadPermittedRolesList(); + + public void validateUser(); public void storeUser(); Modified: trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLImpl.java =================================================================== --- trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLImpl.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLImpl.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,11 +1,20 @@ package elvys.server.bl.user; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import org.hibernate.Hibernate; +import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import cz.elvys.commons.utils.HibUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.Role; +import cz.elvys.webServer.HIBgen.User; import cz.elvys.webServer.db.InitSessionFactory; import cz.elvys.webServer.toSpring.exception.ExecuteException; @@ -23,32 +32,41 @@ @Override - public boolean isUserAuthentizedMakeSession(Integer userId, String pass) throws ExecuteException { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = HibUtils.startTx(sess); - boolean isAuthentized; + public List<User> getUserByUserNameAndPasswordMakeSession(String login, String pass) throws ExecuteException { + Session session = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = session.getTransaction(); + List<User> users = null; try { - isAuthentized = isUserAuthentized(userId, pass, sess); + tx.begin(); + } catch (Exception e) { + throw new Error("User couldn't be obtained from DB",e); + } + + try { + users = getUserByUserNameAndPassword(login,pass,session); tx.commit(); } catch (Exception e) { - tx.rollback(); - throw new ExecuteException(e); + try { + tx.rollback(); + } catch (Exception ee) { + // TODO - log, transaction lost ?; mozna zbytecny try blok.. transakce existuje + } + throw new Error("User couldn't be obtained from DB",e); } - return isAuthentized; + return users; } @Override - public boolean isUserAuthentized(Integer userId, String pass, Session sess) throws ExecuteException{ + public List<User> getUserByUserNameAndPassword(String login, String pass, Session sess) throws ExecuteException { Query query = sess.createQuery("from User user " + "inner join fetch user.role " + "inner join fetch user.company " + "where username=:usname and password=:psswd"); - query.setString("usname", "kusak"); - query.setString("psswd", "pass"); - query.list(); + query.setString("usname", login); + query.setString("psswd", pass); - return false; + return query.list(); } @Override @@ -63,6 +81,127 @@ } + public void saveOrUpdateUser(User user){ + // ADD validation of password if not updating + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch(HibernateException e) { + throw new Error("error occured when initializing hibernate session",e); + } + try { + sess.saveOrUpdate(user); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to save/update user.", e); + } + } + + public List<User> loadAllUsers(int compID,String competency) { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch(HibernateException e) { + throw new Error("error occured when initializing hibernate session",e); + } + List<User> users = null; + try { + + Query query = null; + if (competency.equalsIgnoreCase("superadmin")) { + // superadmin sees all users + query = sess.createQuery("from User as user " + + "inner join fetch user.role " + + "inner join fetch user.company WHERE user.disabled = 0"); + } else if (competency.equalsIgnoreCase("admin")) { + query = sess.createQuery("from User as user " + + "inner join fetch user.role " + + "inner join fetch user.company " + + "where user.company=:compID and user.role.role!='superadmin' AND user.disabled = 0" ); + query.setInteger("compID", compID); + } else { + // TODO log + throw new RuntimeException("Only superadmin and admin can see list of users"); + } + + + users = query.list(); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to load all users.", e); + } + return users; + } + @Override + public void deleteUser(User user) { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch(HibernateException e) { + throw new Error("error occured when initializing hibernate session",e); + } + try { + user.setDisabled(true); + sess.saveOrUpdate(user); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to delete user.", e); + } + } + public List<Company> loadPermittedCompany(int compID,String competency) { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch(HibernateException e) { + throw new Error("error occured when initializing hibernate session",e); + } + + List<Company> companiesList = new ArrayList<Company>(); + try { + if ("admin".equalsIgnoreCase(competency)) { + Company comp = (Company) sess.load(Company.class, compID); + Hibernate.initialize(comp); + companiesList = new LinkedList<Company>(); + companiesList.add(comp); + } else if ("superadmin".equalsIgnoreCase(competency)) { + Query query = sess.createQuery("from Company as company where disabled = 0"); + companiesList = query.list(); + } + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to load companies.", e); + } + return companiesList; + } + + + public List<Role> loadPermittedRolesList() { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch(HibernateException e) { + throw new Error("error occured when initializing hibernate session",e); + } + List<Role> rolesList = new ArrayList<Role>(); + try { + Query query = sess.createQuery("from Role"); + rolesList = query.list(); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw new Error("Unable to load roles.", e); + } + return rolesList; + } } Modified: trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLTest.java =================================================================== --- trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLTest.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/elvysCommons/src/elvys/server/bl/user/UserBLTest.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,10 +1,14 @@ package elvys.server.bl.user; +import java.util.List; + import org.junit.BeforeClass; import org.junit.Test; import static junit.framework.Assert.*; import org.junit.experimental.theories.suppliers.TestedOn; +import cz.elvys.webServer.HIBgen.User; + import elvys.server.bl.Fact; public class UserBLTest { @@ -27,10 +31,10 @@ @Test public void testAuthentizeUser() throws Exception { - boolean is = ubl.isUserAuthentizedMakeSession(11111, "pfsafjsfa"); + List<User> list = ubl.getUserByUserNameAndPasswordMakeSession("11111", "pfsafjsfa"); - assertTrue(is); + assertTrue(list.size() > 0); } Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/auth/J2eeSecurityObject.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/auth/J2eeSecurityObject.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/auth/J2eeSecurityObject.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -6,7 +6,7 @@ import cz.elvys.webServer.auth.XMLdigest.JSFApplication; import cz.elvys.webServer.auth.XMLdigest.JSFPage; import cz.elvys.webServer.auth.XMLdigest.SecurityConfiguration; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import java.io.IOException; @@ -119,7 +119,7 @@ { FacesContext fc = FacesContext.getCurrentInstance(); Application app = fc.getApplication(); - UserBean userBean = (UserBean) app.getExpressionFactory().createValueExpression(fc.getELContext(), "#{user}", UserBean.class).getValue(fc.getELContext()); + UserLoginBean userBean = (UserLoginBean) app.getExpressionFactory().createValueExpression(fc.getELContext(), "#{user}", UserLoginBean.class).getValue(fc.getELContext()); if (!userBean.isLoggedIn()) { // try { @@ -251,7 +251,7 @@ FacesContext fc = FacesContext.getCurrentInstance(); Application app = fc.getApplication(); - UserBean userBean = (UserBean) app.getExpressionFactory().createValueExpression(fc.getELContext(), "#{user}", UserBean.class).getValue(fc.getELContext()); + UserLoginBean userBean = (UserLoginBean) app.getExpressionFactory().createValueExpression(fc.getELContext(), "#{user}", UserLoginBean.class).getValue(fc.getELContext()); J2EERoles j2eeRoles = page.getRoles(); Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/ElvysesCompanyBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/ElvysesCompanyBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/ElvysesCompanyBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -15,6 +15,7 @@ import cz.elvys.webServer.HIBgen.Category; import cz.elvys.webServer.HIBgen.Elvys; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.bl.api.Factory; import cz.elvys.webServer.bl.api.elvysrel.PlanDocumentBL; import cz.elvys.commons.def.PropertyManager; @@ -127,7 +128,7 @@ * private method for preparing list of elvys */ private void prepareList() { - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); try { List<Elvys> listElv = null; if (user.getCompStr().equalsIgnoreCase("superadmin")) { Deleted: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UserBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UserBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UserBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,297 +0,0 @@ -package cz.elvys.webServer.beans; - -import java.io.Serializable; -import java.util.List; -import java.util.TimeZone; - -import javax.faces.context.FacesContext; -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpSession; - -import org.apache.log4j.Logger; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import cz.elvys.commons.utils.CommonUtils; -import cz.elvys.webServer.HIBgen.Company; -import cz.elvys.webServer.HIBgen.User; -import cz.elvys.webServer.db.InitSessionFactory; -import cz.elvys.webServer.utils.faces.MessageUtils; -import cz.elvys.webServer.utils.type.ValidationMessageHolder; - - - -public class UserBean implements Serializable{ - // fields - private Logger log; - - // const - private static final long serialVersionUID = 8092026699388193893L; - - // messages - private static final String LOGGED_IN = "User logged in: "; - private static final String TOO_MANY_USERS_FOUND = "Too many users with same credentials found in DB: "; - private static final String NOT_FOUND = "User not found in DB: "; - - public static enum Competency {SUPERADMIN, ADMIN, USER}; - - // data for other UC's // TODO od chvile, kdy uchovavam celeho Usera je zbytecne companyID, competency,... - private User user = null; - private Competency competency; - private String compStr; - private String locale; - private int companyID; - private String companyName; - private boolean loggedIn; - private Company company; - private TimeZone defaultTimezone; - - - // data for formular - private String formUsername; - private String formPassword; - - - public UserBean() { - log = Logger.getLogger(this.getClass()); - this.user = null; - this.formUsername= null; - this.formPassword= null; - this.competency= null; - this.compStr = null; - this.locale = null; - this.companyID = -1; - this.companyName = null; - this.loggedIn = false; - this.company = null; - } - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - public java.lang.String getUsername() { - return formUsername; - } - - public void setUsername(java.lang.String username) { - this.formUsername = username; - } - - public java.lang.String getPassword() { - return formPassword; - } - - public void setPassword(java.lang.String password) { - this.formPassword = password; - } - - public Competency getCompetency() { - return competency; - } - - public String getCompStr() { - return compStr; - } - - public String getLocale() { - return locale; - } - - public void setLocale(String locale) { - this.locale = locale; - } - - public int getCompanyID() { - return companyID; - } - - public String getCompanyName() { - return companyName; - } - - public boolean isLoggedIn() { - return loggedIn; - } - public TimeZone getDefaultTimezone() { - return defaultTimezone; - } - - public void setDefaultTimezone(TimeZone defaultTimezone) { - this.defaultTimezone = defaultTimezone; - } - - /** - * says, whether competency of this user is USER - * @return competency is USER? - */ - public boolean isUserCompetency() { - return competency.equals(Competency.USER); - } - - /** - * says, whether competency of this user is ADMIN - * @return competency is ADMIN? - */ - public boolean isAdminCompetency() { - return competency.equals(Competency.ADMIN); - } - - /** - * says, whether competency of this user is SUPERADMIN - * @return competency is SUPERADMIN - */ - public boolean isSuperAdminCompetency() { - return competency.equals(Competency.SUPERADMIN); - } - - /** - * Compares bean's property username/password with database entries. <br/> - * This method is called on user's login form is sent. - * - * @return - */ - public String login() { - //TODO na zacatku udelat session.invalidate a a pak request.getSession(true) ? - //((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true)).invalidate(); - - - // set default timezone - defaultTimezone = TimeZone.getDefault(); - - - // verify password - if (formPassword == null || formUsername.length() == 0 || - formPassword == null || formUsername.length() == 0) { - ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( - "LoginForm:UsernameField", "login.bad"); - MessageUtils.processValidationMessage(holder); - } - - Session session = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = session.getTransaction(); - List<User> users = null; - try { - tx.begin(); - } catch (Exception e) { - throw new Error("User couldn't be obtained from DB",e); - } - - try { - Query query = session.createQuery("from User user " + - "inner join fetch user.role " + - "inner join fetch user.company " + - "where username=:usname and password=:psswd"); - query.setString("usname", formUsername); - query.setString("psswd", formPassword); - - users = query.list(); - tx.commit(); - } catch (Exception e) { - try { - tx.rollback(); - } catch (Exception ee) { - // TODO - log, transaction lost ?; mozna zbytecny try blok.. transakce existuje - } - throw new Error("User couldn't be obtained from DB",e); - } - - // prepare info about remote host - ServletRequest req = (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); - String ip = req.getRemoteAddr(); - String host = req.getRemoteHost(); - - String whatToReturn = null; - // check the result of search for user - if (users.size() == 1) { - whatToReturn = "success"; - user = users.get(0); - if (!user.isDisabled()) { - loggedIn = true; - if (users.get(0).getRole().getRole().equalsIgnoreCase("user")) { - competency = Competency.USER; - compStr = "user"; - } else if (users.get(0).getRole().getRole().equalsIgnoreCase( - "admin")) { - competency = Competency.ADMIN; - compStr = "admin"; - } else if (users.get(0).getRole().getRole().equalsIgnoreCase( - "superadmin")) { - competency = Competency.SUPERADMIN; - compStr = "superadmin"; - } else { - // unrecognized user's competency - whatToReturn = "failure"; - loggedIn = false; - ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( - "LoginForm:UsernameField", "login.bad"); - MessageUtils.processValidationMessage(holder); - } - if (loggedIn) { - this.locale = users.get(0).getLocale(); - this.companyID = users.get(0).getCompany().getId(); - this.companyName = users.get(0).getCompany().getName(); - this.company = users.get(0).getCompany(); - } - - // print log message about logged user - String message = CommonUtils.prepareErrorMessage(LOGGED_IN, "user", user.getUsername(), "company", user.getCompany().getName(), "ip", ip, "host", host); - log.info(message); - }else{ - // user is disabled - whatToReturn = "failure"; - ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( - "LoginForm:UsernameField", "login.bad"); - MessageUtils.processValidationMessage(holder); - } - - } else if (users.size()>1) { - // too many users with same credentials found in DB - whatToReturn = "failure"; - ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( - "LoginForm:UsernameField", "login.bad"); - MessageUtils.processValidationMessage(holder); - String message = CommonUtils.prepareErrorMessage(TOO_MANY_USERS_FOUND, "user", formUsername, "count", users.size(), "ip", ip, "host", host); - log.error(message); - } else { - // proper user hasn't been found in DB - whatToReturn = "failure"; - ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( - "LoginForm:UsernameField", "login.bad"); - MessageUtils.processValidationMessage(holder); - String message = CommonUtils.prepareErrorMessage(NOT_FOUND, "user", formUsername, "ip", ip, "host", host); - log.debug(message); - } - - return whatToReturn; - } - - public String logout() { - String username = user.getUsername(); - this.loggedIn = false; - this.formUsername= null; - this.formPassword= null; - this.competency= null; - this.compStr= null; - this.locale= null; - this.companyID = -1; - this.companyName = null; - this.company = null; - ((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true)).invalidate(); - log.info("User logged out: "+ username); - return "logout"; - } - - public Company getCompany() { - return company; - } - - public void setCompany(Company company) { - this.company = company; - } -} Deleted: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UsersBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UsersBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/UsersBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,344 +0,0 @@ -package cz.elvys.webServer.beans; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -import javax.faces.application.FacesMessage; -import javax.faces.component.UIComponent; -import javax.faces.context.FacesContext; -import javax.faces.event.ActionEvent; -import javax.faces.model.SelectItem; -import javax.faces.model.SelectItemGroup; -import javax.faces.validator.ValidatorException; - -import org.hibernate.Hibernate; -import org.hibernate.HibernateException; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; - -import cz.elvys.webServer.HIBgen.Company; -import cz.elvys.webServer.HIBgen.Role; -import cz.elvys.webServer.HIBgen.User; -import cz.elvys.webServer.db.InitSessionFactory; -import cz.elvys.webServer.utils.faces.BeanManager; -import cz.elvys.webServer.utils.faces.MessageUtils; - - - - -/** - * TODO predelat do sdilene business logiky, co tady ma co delat pristup do DB???? - * TODO a honem!!! - * @author David - * - */ -public class UsersBean implements Serializable { - private List<User> users = null; - private User selectedUser = null; - private boolean updating; - private List<SelectItem> companiesToSelect = null; - private Integer sizeOfCompaniesToSelect = null; - private List<SelectItem> rolesToSelect = null; - private Integer sizeOfRolesToSelect = null; - private String passwordAgain = null; - - public List<User> getUsers() { - return users; - } - public void setUsers(List<User> users) { - this.users = users; - } - public User getSelectedUser() { - return selectedUser; - } - public void setSelectedUser(User selectedUser) { - this.selectedUser = selectedUser; - } - public boolean isUpdating() { - return updating; - } - public void setUpdating(boolean updating) { - this.updating = updating; - } - - public List<SelectItem> getCompaniesToSelect() { - return companiesToSelect; - } - public void setCompaniesToSelect(List<SelectItem> companiesToSelect) { - this.companiesToSelect = companiesToSelect; - } - public List<SelectItem> getRolesToSelect() { - return rolesToSelect; - } - public void setRolesToSelect(List<SelectItem> rolesToSelect) { - this.rolesToSelect = rolesToSelect; - } - public String getPasswordAgain() { - return passwordAgain; - } - public void setPasswordAgain(String passwordAgain) { - this.passwordAgain = passwordAgain; - } - public Integer getSizeOfCompaniesToSelect() { - return sizeOfCompaniesToSelect; - } - public void setSizeOfCompaniesToSelect(Integer sizeOfCompaniesToSelect) { - this.sizeOfCompaniesToSelect = sizeOfCompaniesToSelect; - } - public Integer getSizeOfRolesToSelect() { - return sizeOfRolesToSelect; - } - public void setSizeOfRolesToSelect(Integer sizeOfRolesToSelect) { - this.sizeOfRolesToSelect = sizeOfRolesToSelect; - } - - - /** - * @return - */ - public String prepareListOfUsers() { - users = loadAllUsers(); - return "listOfUsers"; - } - - /** - * @return - */ - public String prepareCreateUserForm() { - selectedUser = new User(); - passwordAgain = null; - selectedUser.setLocale("cs"); - selectedUser.setSystem(false); - rolesToSelect = loadPermittedRolesList(); - sizeOfRolesToSelect = rolesToSelect.size(); - companiesToSelect= loadPermittedCompanyList(); - sizeOfCompaniesToSelect= companiesToSelect.size(); - return "editUserForm"; - } - - - /** - * @return - */ - public String prepareUpdateUserForm() { - // User selected from UC listOfUsers - // don't need 'passwordAgain' - // locale has been set already - // system has been set already - rolesToSelect = loadPermittedRolesList(); - sizeOfRolesToSelect = rolesToSelect.size(); - companiesToSelect= loadPermittedCompanyList(); - sizeOfCompaniesToSelect= companiesToSelect.size(); - return "editUserForm"; - } - - - - /** - * Stores new User into DB and forwards to ListOfUsers UC. - * @return - */ - public String saveUser() { - if (selectedUser.getPassword().equals(passwordAgain)) { - // password and passwordAgain matched - saveOrUpdateUser(); - return prepareListOfUsers(); - } else { - // password and passwordAgain are different - FacesMessage message = MessageUtils.getMessage( - "user.form.badPasswordAgain", null, FacesMessage.SEVERITY_ERROR); - FacesContext fc = FacesContext.getCurrentInstance(); - fc.addMessage("editUserForm:passwordAgain", message); - return "error"; - } - } - - - /** - * Stores updated User into DB and forwards to ListOfUsers UC. - * @return - */ - public String updateUser() { - saveOrUpdateUser(); - return prepareListOfUsers(); - } - - private void saveOrUpdateUser() { - // ADD validation of password if not updating - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - try { - sess.saveOrUpdate(selectedUser); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to save/update user.", e); - } - } - - public void deleteUser(ActionEvent aev) { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - try { - selectedUser.setDisabled(true); - sess.saveOrUpdate(selectedUser); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to delete user.", e); - } - users.remove(selectedUser); - } - - private List<User> loadAllUsers() { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - List<User> users = null; - UserBean user = BeanManager.getUser(); - int compID = user.getCompanyID(); - try { - - Query query = null; - if (user.getCompStr().equalsIgnoreCase("superadmin")) { - // superadmin sees all users - query = sess.createQuery("from User as user " + - "inner join fetch user.role " + - "inner join fetch user.company WHERE user.disabled = 0"); - } else if (user.getCompStr().equalsIgnoreCase("admin")) { - query = sess.createQuery("from User as user " + - "inner join fetch user.role " + - "inner join fetch user.company " + - "where user.company=:compID and user.role.role!='superadmin' AND user.disabled = 0" ); - query.setInteger("compID", compID); - } else { - // TODO log - throw new RuntimeException("Only superadmin and admin can see list of users"); - } - - - users = query.list(); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to load all users.", e); - } - return users; - } - - - - private List<SelectItem> loadPermittedCompanyList() { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - UserBean me = BeanManager.getUser(); - List<Company> companiesList = new ArrayList<Company>(); - try { - if ("admin".equalsIgnoreCase(me.getCompStr())) { - Company comp = (Company) sess.load(Company.class, me.getCompanyID()); - Hibernate.initialize(comp); - companiesList = new LinkedList<Company>(); - companiesList.add(comp); - } else if ("superadmin".equalsIgnoreCase(me.getCompStr())) { - Query query = sess.createQuery("from Company as company where disabled = 0"); - companiesList = query.list(); - } - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to load companies.", e); - } - List<SelectItem> companies = new ArrayList<SelectItem>(); - for (Company comp: companiesList) { - SelectItem si = new SelectItem(); - si.setLabel(comp.getName()); - si.setValue(comp); - companies.add(si); - } - - return companies; - } - - - private List<SelectItem> loadPermittedRolesList() { - Session sess = InitSessionFactory.getInstance().getCurrentSession(); - Transaction tx = sess.getTransaction(); - try { - tx.begin(); - } catch(HibernateException e) { - throw new Error("error occured when initializing hibernate session",e); - } - List<Role> rolesList = new ArrayList<Role>(); - try { - Query query = sess.createQuery("from Role"); - rolesList = query.list(); - tx.commit(); - } catch (Exception e) { - tx.rollback(); - throw new Error("Unable to load roles.", e); - } - - - - UserBean me = BeanManager.getUser(); - List<SelectItem> roles = new LinkedList<SelectItem>(); - if (me.getCompStr().equalsIgnoreCase("superadmin")){ - // superadmin is allowed to create user with each competency - roles.add(prepareSelectItem("user", rolesList)); - roles.add(prepareSelectItem("admin", rolesList)); - roles.add(prepareSelectItem("superadmin", rolesList)); - } else if (me.getCompStr().equalsIgnoreCase("admin")) { - // admin is not allowed to create user with "superadmin" competency - roles.add(prepareSelectItem("user", rolesList)); - roles.add(prepareSelectItem("admin", rolesList)); - } else { - // user is allowed to create only users - roles.add(prepareSelectItem("user", rolesList)); - } - - return roles; - } - - - - - private SelectItem prepareSelectItem(String compStr,List<Role> roles) { - Role role =findByRoleCompStr(compStr, roles); - SelectItem si = new SelectItem(); - si.setLabel(role.getRole()); - si.setValue(role); - return si; - } - - private Role findByRoleCompStr(String compStr,List<Role> roles) { - for (Role role : roles) { - if (compStr.equalsIgnoreCase(role.getRole())) { - return role; - } - } - return null; - } - -} Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -9,7 +9,7 @@ import cz.elvys.commons.utils.CommonUtils; import cz.elvys.webServer.HIBgen.FileType; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.utils.faces.BeanManager; import elvys.server.bl.Fact; import elvys.server.bl.file.FileManagerBL; @@ -66,7 +66,7 @@ public void prepare() { // get list of types to be displayed - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); int companyId = user.getUser().getCompany().getId(); try { typesToDisplay = fileManagerBL.listCompanyAllowedFileTypesMakeSession(companyId); Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileListComponentBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -11,7 +11,7 @@ import cz.elvys.commons.utils.CommonUtils; import cz.elvys.webServer.HIBgen.Document; import cz.elvys.webServer.HIBgen.FileType; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.utils.faces.BeanManager; import cz.elvys.webServer.utils.faces.MessageUtils; import elvys.server.bl.Fact; @@ -151,7 +151,7 @@ throw new RuntimeException("allowedFileTypeObjects null"); - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); int companyID = user.getUser().getCompany().getId(); try { @@ -181,7 +181,7 @@ // invalidate old form data invalidate(); - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); int companyID = user.getUser().getCompany().getId(); try { Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileUploadBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileUploadBean.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/filerel/FileUploadBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -14,7 +14,7 @@ import cz.elvys.commons.def.Constants; import cz.elvys.commons.utils.CommonUtils; import cz.elvys.webServer.HIBgen.FileType; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.utils.faces.BeanManager; import elvys.server.bl.Fact; import elvys.server.bl.file.FileManagerBL; @@ -129,7 +129,7 @@ uploadedFileName = uploadedFileName.substring(slashIndex+1); } // get user and company information - UserBean userBean = BeanManager.getUser(); + UserLoginBean userBean = BeanManager.getUser(); // id of company - determines folder for storing the file int companyId = userBean.getCompanyID(); // id of the uploading user Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserEditBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserEditBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserEditBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -0,0 +1,218 @@ +package cz.elvys.webServer.beans.user; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.TimeZone; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; +import javax.faces.event.ActionEvent; +import javax.faces.model.SelectItem; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import cz.elvys.commons.utils.CommonUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.Role; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.toSpring.exception.ExecuteException; +import cz.elvys.webServer.utils.faces.BeanManager; +import cz.elvys.webServer.utils.faces.MessageUtils; +import cz.elvys.webServer.utils.type.ValidationMessageHolder; +import elvys.server.bl.Fact; +import elvys.server.bl.user.UserBL; +import elvys.server.bl.user.UserBLImpl; + +public class UserEditBean implements Serializable { + // fields + private Logger log; + + // const + private static final long serialVersionUID = 8092026699388193893L; + + private User selectedUser = null; + private boolean updating; + private List<SelectItem> companiesToSelect = null; + private Integer sizeOfCompaniesToSelect = null; + private List<SelectItem> rolesToSelect = null; + private Integer sizeOfRolesToSelect = null; + private String passwordAgain = null; + + private UserBL userBL; + + public UserEditBean() { + log = Logger.getLogger(this.getClass()); + this.userBL = Fact.getUserBL(); + } + + public User getSelectedUser() { + return selectedUser; + } + public void setSelectedUser(User selectedUser) { + this.selectedUser = selectedUser; + } + public boolean isUpdating() { + return updating; + } + public void setUpdating(boolean updating) { + this.updating = updating; + } + + public List<SelectItem> getCompaniesToSelect() { + return companiesToSelect; + } + public void setCompaniesToSelect(List<SelectItem> companiesToSelect) { + this.companiesToSelect = companiesToSelect; + } + public List<SelectItem> getRolesToSelect() { + return rolesToSelect; + } + public void setRolesToSelect(List<SelectItem> rolesToSelect) { + this.rolesToSelect = rolesToSelect; + } + public String getPasswordAgain() { + return passwordAgain; + } + public void setPasswordAgain(String passwordAgain) { + this.passwordAgain = passwordAgain; + } + public Integer getSizeOfCompaniesToSelect() { + return sizeOfCompaniesToSelect; + } + public void setSizeOfCompaniesToSelect(Integer sizeOfCompaniesToSelect) { + this.sizeOfCompaniesToSelect = sizeOfCompaniesToSelect; + } + public Integer getSizeOfRolesToSelect() { + return sizeOfRolesToSelect; + } + public void setSizeOfRolesToSelect(Integer sizeOfRolesToSelect) { + this.sizeOfRolesToSelect = sizeOfRolesToSelect; + } + + /** + * @return + */ + public String prepareCreateUserForm() { + selectedUser = new User(); + passwordAgain = null; + selectedUser.setLocale("cs"); + selectedUser.setSystem(false); + rolesToSelect = loadPermittedRolesList(); + sizeOfRolesToSelect = rolesToSelect.size(); + companiesToSelect= loadPermittedCompanyList(); + sizeOfCompaniesToSelect= companiesToSelect.size(); + return "editUserForm"; + } + + + /** + * @return + */ + public String prepareUpdateUserForm() { + // User selected from UC listOfUsers + // don't need 'passwordAgain' + // locale has been set already + // system has been set already + rolesToSelect = loadPermittedRolesList(); + sizeOfRolesToSelect = rolesToSelect.size(); + companiesToSelect= loadPermittedCompanyList(); + sizeOfCompaniesToSelect= companiesToSelect.size(); + return "editUserForm"; + } + + + + /** + * Stores new User into DB and forwards to ListOfUsers UC. + * @return + */ + public String saveUser() { + if (selectedUser.getPassword().equals(passwordAgain)) { + // salt password + + // password and passwordAgain matched + userBL.saveOrUpdateUser(selectedUser); + UserListBean userList = BeanManager.getUserList(); + return userList.prepareListOfUsers(); + } else { + // password and passwordAgain are different + FacesMessage message = MessageUtils.getMessage( + "user.form.badPasswordAgain", null, FacesMessage.SEVERITY_ERROR); + FacesContext fc = FacesContext.getCurrentInstance(); + fc.addMessage("editUserForm:passwordAgain", message); + return "error"; + } + } + + + /** + * Stores updated User into DB and forwards to ListOfUsers UC. + * @return + */ + public String updateUser() { + userBL.saveOrUpdateUser(selectedUser); + return "listOfUsers"; + } + + + private List<SelectItem> loadPermittedCompanyList() { + UserLoginBean me = BeanManager.getUser(); + List<Company> companiesList = userBL.loadPermittedCompany(me.getCompanyID(),me.getCompStr()); + List<SelectItem> companies = new ArrayList<SelectItem>(); + for (Company comp: companiesList) { + SelectItem si = new SelectItem(); + si.setLabel(comp.getName()); + si.setValue(comp); + companies.add(si); + } + + return companies; + } + + private List<SelectItem> loadPermittedRolesList() { + List<Role> rolesList = userBL.loadPermittedRolesList(); + + UserLoginBean me = BeanManager.getUser(); + List<SelectItem> roles = new LinkedList<SelectItem>(); + if (me.getCompStr().equalsIgnoreCase("superadmin")){ + // superadmin is allowed to create user with each competency + roles.add(prepareSelectItem("user", rolesList)); + roles.add(prepareSelectItem("admin", rolesList)); + roles.add(prepareSelectItem("superadmin", rolesList)); + } else if (me.getCompStr().equalsIgnoreCase("admin")) { + // admin is not allowed to create user with "superadmin" competency + roles.add(prepareSelectItem("user", rolesList)); + roles.add(prepareSelectItem("admin", rolesList)); + } else { + // user is allowed to create only users + roles.add(prepareSelectItem("user", rolesList)); + } + + return roles; + } + + private SelectItem prepareSelectItem(String compStr,List<Role> roles) { + Role role =findByRoleCompStr(compStr, roles); + SelectItem si = new SelectItem(); + si.setLabel(role.getRole()); + si.setValue(role); + return si; + } + + private Role findByRoleCompStr(String compStr,List<Role> roles) { + for (Role role : roles) { + if (compStr.equalsIgnoreCase(role.getRole())) { + return role; + } + } + return null; + } +} Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserListBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserListBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserListBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -0,0 +1,85 @@ +package cz.elvys.webServer.beans.user; + +import java.io.Serializable; +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.event.ActionEvent; +import javax.faces.model.SelectItem; +import javax.faces.model.SelectItemGroup; +import javax.faces.validator.ValidatorException; + +import org.apache.log4j.Logger; +import org.hibernate.Hibernate; +import org.hibernate.HibernateException; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.Role; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.utils.faces.BeanManager; +import cz.elvys.webServer.utils.faces.MessageUtils; +import elvys.server.bl.Fact; +import elvys.server.bl.user.UserBL; + +/** + * @author David + * + */ +public class UserListBean implements Serializable { + // fields + private Logger log; + + // const + private static final long serialVersionUID = 8092026699388193893L; + + private List<User> users = null; + private User selectedUser = null; + + private UserBL userBL; + + public UserListBean() { + log = Logger.getLogger(this.getClass()); + this.userBL = Fact.getUserBL(); + } + + public List<User> getUsers() { + return users; + } + public void setUsers(List<User> users) { + this.users = users; + } + public User getSelectedUser() { + return selectedUser; + } + public void setSelectedUser(User selectedUser) { + this.selectedUser = selectedUser; + } + + /** + * @return + */ + public String prepareListOfUsers() { + UserLoginBean user = BeanManager.getUser(); + int compID = user.getCompanyID(); + users = userBL.loadAllUsers(compID,user.getCompStr()); + return "listOfUsers"; + } + + + public void deleteUser(ActionEvent aev) { + userBL.deleteUser(selectedUser); + users.remove(selectedUser); + } + +} Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLoginBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLoginBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLoginBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -0,0 +1,288 @@ +package cz.elvys.webServer.beans.user; + +import java.io.Serializable; +import java.util.List; +import java.util.TimeZone; + +import javax.faces.context.FacesContext; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import cz.elvys.commons.utils.CommonUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.toSpring.exception.ExecuteException; +import cz.elvys.webServer.utils.faces.MessageUtils; +import cz.elvys.webServer.utils.type.ValidationMessageHolder; +import elvys.server.bl.Fact; +import elvys.server.bl.user.UserBL; + + + +public class UserLoginBean implements Serializable { + // fields + private Logger log; + + // const + private static final long serialVersionUID = 8092026699388193893L; + + // messages + private static final String LOGGED_IN = "User logged in: "; + private static final String TOO_MANY_USERS_FOUND = "Too many users with same credentials found in DB: "; + private static final String NOT_FOUND = "User not found in DB: "; + + public static enum Competency {SUPERADMIN, ADMIN, USER}; + + // data for other UC's // TODO od chvile, kdy uchovavam celeho Usera je zbytecne companyID, competency,... + private User user = null; + private Competency competency; + private String compStr; + private String locale; + private int companyID; + private String companyName; + private boolean loggedIn; + private Company company; + private TimeZone defaultTimezone; + + private UserBL userBL; + + + // data for formular + private String formUsername; + private String formPassword; + + + public UserLoginBean() { + log = Logger.getLogger(this.getClass()); + this.user = null; + this.formUsername= null; + this.formPassword= null; + this.competency= null; + this.compStr = null; + this.locale = null; + this.companyID = -1; + this.companyName = null; + this.loggedIn = false; + this.company = null; + + this.userBL = Fact.getUserBL(); + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public java.lang.String getUsername() { + return formUsername; + } + + public void setUsername(java.lang.String username) { + this.formUsername = username; + } + + public java.lang.String getPassword() { + return formPassword; + } + + public void setPassword(java.lang.String password) { + this.formPassword = password; + } + + public Competency getCompetency() { + return competency; + } + + public String getCompStr() { + return compStr; + } + + public String getLocale() { + return locale; + } + + public void setLocale(String locale) { + this.locale = locale; + } + + public int getCompanyID() { + return companyID; + } + + public String getCompanyName() { + return companyName; + } + + public boolean isLoggedIn() { + return loggedIn; + } + public TimeZone getDefaultTimezone() { + return defaultTimezone; + } + + public void setDefaultTimezone(TimeZone defaultTimezone) { + this.defaultTimezone = defaultTimezone; + } + + /** + * says, whether competency of this user is USER + * @return competency is USER? + */ + public boolean isUserCompetency() { + return competency.equals(Competency.USER); + } + + /** + * says, whether competency of this user is ADMIN + * @return competency is ADMIN? + */ + public boolean isAdminCompetency() { + return competency.equals(Competency.ADMIN); + } + + /** + * says, whether competency of this user is SUPERADMIN + * @return competency is SUPERADMIN + */ + public boolean isSuperAdminCompetency() { + return competency.equals(Competency.SUPERADMIN); + } + + /** + * Compares bean's property username/password with database entries. <br/> + * This method is called on user's login form is sent. + * + * @return + */ + public String login() { + //TODO na zacatku udelat session.invalidate a a pak request.getSession(true) ? + //((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true)).invalidate(); + + + // set default timezone + defaultTimezone = TimeZone.getDefault(); + + // verify password + if (formPassword == null || formPassword.length() == 0 || + formUsername == null || formUsername.length() == 0) { + ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( + "LoginForm:UsernameField", "login.bad"); + MessageUtils.processValidationMessage(holder); + return "failure"; + } + + // prepare info about remote host + ServletRequest req = (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); + String ip = req.getRemoteAddr(); + String host = req.getRemoteHost(); + + List<User> users = null; + + // password and username are filled, run authorization + try { + users = userBL.getUserByUserNameAndPasswordMakeSession(formUsername, formPassword); + } catch (ExecuteException e) { + // TODO Auto-generated catch block + String message = CommonUtils.prepareErrorMessage(TOO_MANY_USERS_FOUND, "user", formUsername, "ip", ip, "host", host); + log.error(message); + } + + + String whatToReturn = null; + // check the result of search for user + if (users.size() == 1) { + whatToReturn = "success"; + user = users.get(0); + if (!user.isDisabled()) { + loggedIn = true; + if (users.get(0).getRole().getRole().equalsIgnoreCase("user")) { + competency = Competency.USER; + compStr = "user"; + } else if (users.get(0).getRole().getRole().equalsIgnoreCase( + "admin")) { + competency = Competency.ADMIN; + compStr = "admin"; + } else if (users.get(0).getRole().getRole().equalsIgnoreCase( + "superadmin")) { + competency = Competency.SUPERADMIN; + compStr = "superadmin"; + } else { + // unrecognized user's competency + whatToReturn = "failure"; + loggedIn = false; + ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( + "LoginForm:UsernameField", "login.bad"); + MessageUtils.processValidationMessage(holder); + } + if (loggedIn) { + this.locale = users.get(0).getLocale(); + this.companyID = users.get(0).getCompany().getId(); + this.companyName = users.get(0).getCompany().getName(); + this.company = users.get(0).getCompany(); + } + + // print log message about logged user + String message = CommonUtils.prepareErrorMessage(LOGGED_IN, "user", user.getUsername(), "company", user.getCompany().getName(), "ip", ip, "host", host); + log.info(message); + }else{ + // user is disabled + whatToReturn = "failure"; + ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( + "LoginForm:UsernameField", "login.bad"); + MessageUtils.processValidationMessage(holder); + } + + } else if (users.size()>1) { + // too many users with same credentials found in DB + whatToReturn = "failure"; + ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( + "LoginForm:UsernameField", "login.bad"); + MessageUtils.processValidationMessage(holder); + String message = CommonUtils.prepareErrorMessage(TOO_MANY_USERS_FOUND, "user", formUsername, "count", users.size(), "ip", ip, "host", host); + log.error(message); + } else { + // proper user hasn't been found in DB + whatToReturn = "failure"; + ValidationMessageHolder holder = MessageUtils.prepareValidationMessageHolder( + "LoginForm:UsernameField", "login.bad"); + MessageUtils.processValidationMessage(holder); + String message = CommonUtils.prepareErrorMessage(NOT_FOUND, "user", formUsername, "ip", ip, "host", host); + log.debug(message); + } + + return whatToReturn; + } + + public String logout() { + String username = user.getUsername(); + this.loggedIn = false; + this.formUsername= null; + this.formPassword= null; + this.competency= null; + this.compStr= null; + this.locale= null; + this.companyID = -1; + this.companyName = null; + this.company = null; + ((HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true)).invalidate(); + log.info("User logged out: "+ username); + return "logout"; + } + + public Company getCompany() { + return company; + } + + public void setCompany(Company company) { + this.company = company; + } +} Added: trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLostPasswordBean.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLostPasswordBean.java (rev 0) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/beans/user/UserLostPasswordBean.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -0,0 +1,36 @@ +package cz.elvys.webServer.beans.user; + +import java.io.Serializable; +import java.util.List; +import java.util.TimeZone; + +import javax.faces.context.FacesContext; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.hibernate.Query; +import org.hibernate.Session; +import org.hibernate.Transaction; + +import cz.elvys.commons.utils.CommonUtils; +import cz.elvys.webServer.HIBgen.Company; +import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; +import cz.elvys.webServer.toSpring.exception.ExecuteException; +import cz.elvys.webServer.utils.faces.MessageUtils; +import cz.elvys.webServer.utils.type.ValidationMessageHolder; +import elvys.server.bl.Fact; +import elvys.server.bl.user.UserBL; +import elvys.server.bl.user.UserBLImpl; + +public class UserLostPasswordBean implements Serializable { + // fields + private Logger log; + + // const + private static final long serialVersionUID = 8092026699388193893L; + + // messages + +} Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/messages/labels_cs.properties 2010-02-17 15:30:14 UTC (rev 1761) @@ -122,6 +122,8 @@ user.edit.form.title.modify=\u00DAprava u\u017Eivatele user.edit.form.surname=P\u0159\u00EDjmen\u00ED user.edit.form.realname=Jm\u00E9no +user.edit.form.email=Email +user.edit.form.phone=Telefon user.edit.form.username=U\u017Eivatelsk\u00E9 jm\u00E9no user.edit.form.password=Heslo user.edit.form.passwordagain=Heslo znovu @@ -130,6 +132,7 @@ user.edit.form.button.ok=OK user.edit.form.button.modify=Upravit user.edit.form.button.cancel=Zru\u0161it +user.edit.form.rolelist.tooltip=Role uzivatele urcuje prava v ramci systemu. Admin ma vyssi prava nez user layout.list.body.title=Seznam rozvr\u017Een\u00ED layout.list.id=ID Modified: trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java =================================================================== --- trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/JavaSource/cz/elvys/webServer/utils/faces/BeanManager.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -26,7 +26,6 @@ import cz.elvys.webServer.beans.CompaniesBean; import cz.elvys.webServer.beans.ElvysesCompanyBean; import cz.elvys.webServer.beans.FilePlanningBean; -import cz.elvys.webServer.beans.UserBean; import cz.elvys.webServer.beans.categrel.CatDefAssignStep1Bean; import cz.elvys.webServer.beans.categrel.CatDefAssignStep2Bean; import cz.elvys.webServer.beans.categrel.CatDefEditBean; @@ -37,6 +36,8 @@ import cz.elvys.webServer.beans.layoutrel.LayoutPreviewBean; import cz.elvys.webServer.beans.planningrel.PlanningModalBean; import cz.elvys.webServer.beans.planningrel.plug.PlanningModalSpecBean; +import cz.elvys.webServer.beans.user.UserListBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.component.filerel.FileListComponentBean; import cz.elvys.webServer.component.layoutrel.LayoutListComponentBean; import cz.elvys.webServer.component.layoutrel.LayoutSelectAndCloseCompBean; @@ -45,6 +46,7 @@ // const private static final String USER_BEAN_NAME = "user"; + private static final String USER_LIST_BEAN_NAME = "usersBean"; private static final String FILE_PLANNING_BEAN_NAME = "filePlanningBean"; private static final String ELVYSES_COMPANY_BEAN = "elvysesBean"; private static final String ELVYS_SETTING_BEAN = "elvysSettingBean"; @@ -66,13 +68,22 @@ // messages private static final String COULDNT_INVOKE_METHOD = "Couldn't invoke actionListener on bean"; + + /** + * gets user bean + * @return instance + */ + public static UserListBean getUserList(){ + UserListBean userList = (UserListBean) getBeanByContextName(USER_LIST_BEAN_NAME, UserListBean.class); + return userList; + } /** * gets user bean * @return instance */ - public static UserBean getUser(){ - UserBean user = (UserBean) getBeanByContextName(USER_BEAN_NAME, UserBean.class); + public static UserLoginBean getUser(){ + UserLoginBean user = (UserLoginBean) getBeanByContextName(USER_BEAN_NAME, UserLoginBean.class); return user; } Modified: trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/report/ReportCTRLImpl.java =================================================================== --- trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/report/ReportCTRLImpl.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/report/ReportCTRLImpl.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -17,7 +17,7 @@ import cz.elvys.webServer.HIBgen.File; import cz.elvys.webServer.HIBgen.FileType; import cz.elvys.webServer.HIBgen.Statistics; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.db.InitSessionFactory; import cz.elvys.webServer.utils.faces.BeanManager; import elvys.server.bl.Fact; @@ -576,7 +576,7 @@ } public boolean prepareReportFilter(){ - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); int companyID = user.getCompanyID(); // prepare list of documents Modified: trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/stats/StatsCTRLImpl.java =================================================================== --- trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/stats/StatsCTRLImpl.java 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/SpringSource/cz/elvys/webServer/toSpring/stats/StatsCTRLImpl.java 2010-02-17 15:30:14 UTC (rev 1761) @@ -13,7 +13,7 @@ import cz.elvys.webServer.HIBgen.Company; import cz.elvys.webServer.HIBgen.Document; import cz.elvys.webServer.HIBgen.Elvys; -import cz.elvys.webServer.beans.UserBean; +import cz.elvys.webServer.beans.user.UserLoginBean; import cz.elvys.webServer.db.InitSessionFactory; import cz.elvys.webServer.toSpring.stats.helper.AnyChartXMLHandler; import cz.elvys.webServer.utils.faces.BeanManager; @@ -426,7 +426,7 @@ } // set company name and company id - UserBean user = BeanManager.getUser(); + UserLoginBean user = BeanManager.getUser(); this.navigationCompanyId = user.getCompanyID(); this.navigationCompanyName = user.getCompanyName(); Modified: trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml =================================================================== --- trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/WebContent/WEB-INF/faces-beans.xml 2010-02-17 15:30:14 UTC (rev 1761) @@ -5,15 +5,20 @@ <!-- MANAGED BEANS --> <managed-bean> <managed-bean-name>user</managed-bean-name> - <managed-bean-class>cz.elvys.webServer.beans.UserBean</managed-bean-class> + <managed-bean-class>cz.elvys.webServer.beans.user.UserLoginBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>usersBean</managed-bean-name> - <managed-bean-class>cz.elvys.webServer.beans.UsersBean</managed-bean-class> + <managed-bean-class>cz.elvys.webServer.beans.user.UserListBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <managed-bean> + <managed-bean-name>userEditBean</managed-bean-name> + <managed-bean-class>cz.elvys.webServer.beans.user.UserEditBean</managed-bean-class> + <managed-bean-scope>session</managed-bean-scope> + </managed-bean> + <managed-bean> <managed-bean-name>fileListBean</managed-bean-name> <managed-bean-class>cz.elvys.webServer.beans.filerel.FileListBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> Modified: trunk/server/webServer2/WebContent/WEB-INF/faces-navigation.xml =================================================================== --- trunk/server/webServer2/WebContent/WEB-INF/faces-navigation.xml 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/WebContent/WEB-INF/faces-navigation.xml 2010-02-17 15:30:14 UTC (rev 1761) @@ -112,6 +112,11 @@ <to-view-id>/secured/reportrel/reportResult.xhtml</to-view-id> <redirect/> </navigation-case> + <navigation-case> + <from-outcome>showReportResultEmpty</from-outcome> + <to-view-id>/secured/reportrel/reportResultEmpty.xhtml</to-view-id> + <redirect/> + </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/secured/elvysrel/listOfElvyses.xhtml</from-view-id> Modified: trunk/server/webServer2/WebContent/js/components/timeSpinnerComponent.js =================================================================== --- trunk/server/webServer2/WebContent/js/components/timeSpinnerComponent.js 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/WebContent/js/components/timeSpinnerComponent.js 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,29 +1,4 @@ -function IsMSIE7(){ - return(IsMSIE()&&navigator.appVersion.indexOf("MSIE 7.0;")>=0); -} -function IsMSIE6older(){ - return(IsMSIE()&&(navigator.appVersion.indexOf("MSIE 6.0;")>=0||navigator.appVersion.indexOf("MSIE 5.5;")>=0)); -} -function IsMSIE(){ - return navigator.appName==="Microsoft Internet Explorer"; -} -var IE=null; -var NS=null; -var OPERA=null; -ua=navigator.appName.toLowerCase(); -if(ua.indexOf('explorer')>-1&&document.getElementById&&document.childNodes&&!document.addEventListener){ - IE=true; -} -if(ua.indexOf('netscape')>-1&&document.getElementById&&document.childNodes&&!document.all){ - NS=true; -} -if(ua.indexOf('opera')>-1&&document.getElementById&&document.childNodes){ - OPERA=true; -} -if(!IE&&!NS&&!OPERA&&document.addEventListener){ - OPERA=true; -} function HandlerError(e){} Modified: trunk/server/webServer2/WebContent/secured/userrel/editUserForm.xhtml =================================================================== --- trunk/server/webServer2/WebContent/secured/userrel/editUserForm.xhtml 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/WebContent/secured/userrel/editUserForm.xhtml 2010-02-17 15:30:14 UTC (rev 1761) @@ -1,91 +1,123 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";> <html xmlns="http://www.w3.org/1999/xhtml"; - xmlns:h="http://java.sun.com/jsf/html"; - xmlns:f="http://java.sun.com/jsf/core"; - xmlns:ui="http://java.sun.com/jsf/facelets"; + xmlns:h="http://java.sun.com/jsf/html"; + xmlns:f="http://java.sun.com/jsf/core"; + xmlns:ui="http://java.sun.com/jsf/facelets"; xmlns:a4j="http://richfaces.org/a4j"; xmlns:rich="http://richfaces.org/rich"; xmlns:elvys="http://www.elvys.farm.particle.cz";> <ui:composition template="/template/elvys-template.xhtml"> -<ui:define name="title"> + <ui:define name="title"> #{lbl['user.edit.title']} </ui:define> -<ui:define name="contentTitle"> - <h:outputText rendered="#{!usersBean.updating}">#{lbl['user.edit.form.title.create']}</h:outputText> - <h:outputText rendered="#{usersBean.updating}">#{lbl['user.edit.form.title.modify']}</h:outputText> -</ui:define> -<ui:define name="contentSubTitle"></ui:define> + <ui:define name="contentTitle"> + <h:outputText rendered="#{!userEditBean.updating}">#{lbl['user.edit.form.title.create']}</h:outputText> + <h:outputText rendered="#{userEditBean.updating}">#{lbl['user.edit.form.title.modify']}</h:outputText> + </ui:define> + <ui:define name="contentSubTitle"></ui:define> -<ui:define name="contentBody"> - <rich:panel> - <f:facet name="header">#{usersBean.updating ? lbl['user.edit.form.title.modify'] : lbl['user.edit.form.title.create']}</f:facet> - <h:form id="editUserForm"> - <h:panelGrid columns ="3"> - <h:outputLabel value="#{lbl['user.edit.form.surname']}"></h:outputLabel> - <h:inputText id="surname" value="#{usersBean.selectedUser.surname}" required="true"/> - <h:message for="surname" styleClass="error"/> - - <h:outputLabel value="#{lbl['user.edit.form.realname']}"></h:outputLabel> - <h:inputText id="realnameField" value="#{usersBean.selectedUser.realname}" required="true"/> - <h:message for="realnameField" styleClass="error"/> - - <h:outputLabel value="#{lbl['user.edit.form.username']}"></h:outputLabel> - <h:inputText id="usernameField" value="#{usersBean.selectedUser.username}" required="true"/> - <h:message for="usernameField" styleClass="error"/> - - <h:outputLabel value="#{lbl['user.edit.form.password']}" rendered="#{!usersBean.updating}"></h:outputLabel> - <h:inputSecret id="password" value="#{usersBean.selectedUser.password}" required="true" - rendered="#{!usersBean.updating}" errorStyle="border:1px solid red; color:red;"/> - <h:message for="password" styleClass="error" rendered="#{!usersBean.updating}"/> - - <h:outputLabel value="#{lbl['user.edit.form.passwordagain']}" rendered="#{!usersBean.updating}"></h:outputLabel> - <h:inputSecret id="passwordAgain" value="#{usersBean.passwordAgain}" required="true" - rendered="#{!usersBean.updating}" /> - <h:message for="passwordAgain" styleClass="error" rendered="#{!usersBean.updating}"/> - - <h:outputLabel value="#{lbl['user.edit.form.companylist']}"></h:outputLabel> - <h:selectOneListbox id="companyField" required="true" value="#{usersBean.selectedUser.company}" size="#{usersBean.sizeOfCompaniesToSelect >=3? 3 : usersBean.sizeOfCompaniesToSelect}" > - <f:converter converterId="companyConverter"/> - <f:selectItems value="#{usersBean.companiesToSelect}"/> - </h:selectOneListbox> - <h:message for="companyField" styleClass="error"/> - - <h:outputLabel value="#{lbl['user.edit.form.rolelist']}"></h:outputLabel> - <h:selectOneListbox id="roleField" required="true" value="#{usersBean.selectedUser.role}" size="#{usersBean.sizeOfRolesToSelect >=3? 3 : usersBean.sizeOfRolesToSelect}"> - <f:converter converterId="roleConverter"/> - <f:selectItems value="#{usersBean.rolesToSelect}"/> - </h:selectOneListbox> - <h:message for="roleField" styleClass="error"/> - - - </h:panelGrid> - - <!-- OK BUTTON --> - <h:commandButton - value="#{lbl['user.edit.form.button.ok']}" - action="#{usersBean.saveUser}" - rendered="#{!usersBean.updating}" - /> - <!-- MODIFY BUTTON --> - <h:commandButton - value="#{lbl['user.edit.form.button.modify']}" - action="#{usersBean.updateUser}" - rendered="#{usersBean.updating}" - /> - <!-- CANCEL BUTTON --> - <h:commandButton - value="#{lbl['user.edit.form.button.cancel']}" - immediate="true" - action="#{usersBean.prepareListOfUsers}" - rendered="#{usersBean.updating}" - /> - </h:form> - </rich:panel> -</ui:define> + <ui:define name="contentBody"> + <rich:panel> + <f:facet name="header">#{userEditBean.updating ? lbl['user.edit.form.title.modify'] : lbl['user.edit.form.title.create']}</f:facet> + <h:form id="editUserForm"> + <h:panelGrid columns="2"> + <elvys:label id="UserEditSurnameLabel" + label="#{lbl['user.edit.form.surname']}"></elvys:label> + <elvys:inputText2 id="surname" + value="#{userEditBean.selectedUser.surname}" required="true" /> + <elvys:label id="UserEditRealnameLabel" + label="#{lbl['user.edit.form.realname']}"></elvys:label> + <elvys:inputText2 id="realnameField" + value="#{userEditBean.selectedUser.realname}" required="true" /> + + <elvys:label id="UserEditEmailLabel" + label="#{lbl['user.edit.form.email']}"></elvys:label> + <elvys:inputText2 id="emailField" + value="#{userEditBean.selectedUser.email}" required="true" /> + + <elvys:label id="UserEditPhoneLabel" + label="#{lbl['user.edit.form.phone']}"></elvys:label> + <elvys:inputText2 id="phoneField" + value="#{userEditBean.selectedUser.phone}" required="false" /> + + + <elvys:label id="UserEditUsernameLabel" + label="#{lbl['user.edit.form.username']}"></elvys:label> + <elvys:inputText2 id="usernameField" + value="#{userEditBean.selectedUser.username}" required="true" /> + + <elvys:label id="UserEditPassLabel" + label="#{lbl['user.edit.form.password']}" + rendered="#{!userEditBean.updating}"></elvys:label> + + <h:panelGroup> + <h:inputSecret id="password" + value="#{userEditBean.selectedUser.password}" required="true" + rendered="#{!userEditBean.updating}" + errorStyle="border:1px solid red; color:red;" /> + <h:message for="password" styleClass="error" + rendered="#{!userEditBean.updating}" /> + </h:panelGroup> + + <elvys:label id="UserEditPassagainLabel" + label="#{lbl['user.edit.form.passwordagain']}" + rendered="#{!userEditBean.updating}"></elvys:label> + + <h:panelGroup> + <h:inputSecret id="passwordAgain" + value="#{userEditBean.passwordAgain}" required="true" + rendered="#{!userEditBean.updating}" /> + <h:message for="passwordAgain" styleClass="error" + rendered="#{!userEditBean.updating}" /> + </h:panelGroup> + + + <elvys:label id="UserEditCompanyListLabel" + label="#{lbl['user.edit.form.companylist']}"></elvys:label> + <h:panelGroup> + <h:selectOneListbox id="companyField" required="true" + value="#{userEditBean.selectedUser.company}" + size="#{userEditBean.sizeOfCompaniesToSelect >=3? 3 : userEditBean.sizeOfCompaniesToSelect}"> + <f:converter converterId="companyConverter" /> + <f:selectItems value="#{userEditBean.companiesToSelect}" /> + </h:selectOneListbox> + <h:message for="companyField" styleClass="error" /> + </h:panelGroup> + + <elvys:label id="UserEditRoleListLabel" + label="#{lbl['user.edit.form.rolelist']}" + tooltip="#{lbl['user.edit.form.rolelist.tooltip']}"></elvys:label> + <h:panelGroup> + <h:selectOneListbox id="roleField" required="true" + value="#{userEditBean.selectedUser.role}" + size="#{userEditBean.sizeOfRolesToSelect >=3? 3 : userEditBean.sizeOfRolesToSelect}"> + <f:converter converterId="roleConverter" /> + <f:selectItems value="#{userEditBean.rolesToSelect}" /> + </h:selectOneListbox> + <h:message for="roleField" styleClass="error" /> + </h:panelGroup> + + </h:panelGrid> + + <!-- OK BUTTON --> + <h:commandButton value="#{lbl['user.edit.form.button.ok']}" + action="#{userEditBean.saveUser}" rendered="#{!userEditBean.updating}" /> + <!-- MODIFY BUTTON --> + <h:commandButton value="#{lbl['user.edit.form.button.modify']}" + action="#{userEditBean.updateUser}" rendered="#{userEditBean.updating}" /> + <!-- CANCEL BUTTON --> + <h:commandButton value="#{lbl['user.edit.form.button.cancel']}" + immediate="true" action="#{usersBean.prepareListOfUsers}" + rendered="#{userEditBean.updating}" /> + </h:form> + </rich:panel> + </ui:define> + + </ui:composition> -</html> +</html> Modified: trunk/server/webServer2/WebContent/template/elvys-template.xhtml =================================================================== --- trunk/server/webServer2/WebContent/template/elvys-template.xhtml 2010-02-17 14:44:44 UTC (rev 1760) +++ trunk/server/webServer2/WebContent/template/elvys-template.xhtml 2010-02-17 15:30:14 UTC (rev 1761) @@ -51,8 +51,8 @@ </rich:dropDownMenu> <rich:dropDownMenu id="UserMenu" value="#{lbl['template.menu.user']}" disabled="#{user.compStr eq 'user'}"> <rich:menuItem id="ListOfUsers" value="#{lbl['template.menu.user.list']}" action="#{usersBean.prepareListOfUsers}" submitMode="server"/> - <rich:menuItem id="NewUser" value="#{lbl['template.menu.user.new']}" action="#{usersBean.prepareCreateUserForm}" submitMode="server"> - <f:setPropertyActionListener value="${false}" target="#{usersBean.updating}" /> + <rich:menuItem id="NewUser" value="#{lbl['template.menu.user.new']}" action="#{userEditBean.prepareCreateUserForm}" submitMode="server"> + <f:setPropertyActionListener value="${false}" target="#{userEditBean.updating}" /> </rich:menuItem> </rich:dropDownMenu>