[elvystrac] r1761 - * change User Structure - move db code to business layer, separate beans

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Wed, 17 Feb 2010 16:30:15 +0100

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>
                                        


Other related posts:

  • » [elvystrac] r1761 - * change User Structure - move db code to business layer, separate beans - elvys