details:   https://code.openbravo.com/erp/devel/pi/rev/7a41ad44062e
changeset: 16941:7a41ad44062e
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Tue Jun 26 12:38:24 2012 +0200
summary:   fixed issue 20867: Not ERP session counted as concurrent users

details:   https://code.openbravo.com/erp/devel/pi/rev/50ec0eae0e81
changeset: 16942:50ec0eae0e81
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Tue Jun 26 12:42:26 2012 +0200
summary:   fixed issue 20868: UserInfoWidgetActionHandler allows to set other 
default role

diffstat:

 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
 |  27 +++++++--
 src/org/openbravo/erpCommon/obps/ActivationKey.java                            
                                                        |  10 +++
 2 files changed, 31 insertions(+), 6 deletions(-)

diffs (93 lines):

diff -r 5f9870e3e4e3 -r 50ec0eae0e81 
modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
--- 
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
    Tue Jun 26 12:08:45 2012 +0200
+++ 
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/navigationbarcomponents/UserInfoWidgetActionHandler.java
    Tue Jun 26 12:42:26 2012 +0200
@@ -27,6 +27,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
+import org.apache.commons.lang.StringUtils;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
@@ -352,14 +353,25 @@
       languageId = pickLanguage();
     }
     final boolean isDefault;
+    String defaultRoleProperty = null;
+    boolean setOnlyRole = false;
     if (json.has("default")) {
       isDefault = json.getBoolean("default");
+      if (json.has("defaultRoleProperty")) {
+        setOnlyRole = true;
+        defaultRoleProperty = json.getString("defaultRoleProperty");
+      }
     } else {
       isDefault = false;
     }
 
+    if (StringUtils.isEmpty(defaultRoleProperty)) {
+      defaultRoleProperty = User.PROPERTY_DEFAULTROLE;
+    }
+
     new UserSessionSetter().resetSession(request, isDefault, 
OBContext.getOBContext().getUser()
-        .getId(), roleId, clientId, orgId, languageId, warehouseId);
+        .getId(), roleId, clientId, orgId, languageId, warehouseId, 
defaultRoleProperty,
+        setOnlyRole);
 
     return ApplicationConstants.ACTION_RESULT_SUCCESS;
   }
@@ -397,8 +409,8 @@
     private static final long serialVersionUID = 1L;
 
     private void resetSession(HttpServletRequest request, boolean isDefault, 
String userId,
-        String roleId, String clientId, String organizationId, String 
languageId, String warehouseId)
-        throws Exception {
+        String roleId, String clientId, String organizationId, String 
languageId,
+        String warehouseId, String defaultRoleProperty, boolean setOnlyRole) 
throws Exception {
       final VariablesSecureApp vars = new VariablesSecureApp(request); // 
refresh
       final Language language = OBDal.getInstance().get(Language.class, 
languageId);
       if (language.isRTLLanguage()) {
@@ -409,10 +421,13 @@
 
       if (isDefault) {
         final User user = OBDal.getInstance().get(User.class, userId);
-        user.setDefaultClient(OBDal.getInstance().get(Client.class, clientId));
-        
user.setDefaultOrganization(OBDal.getInstance().get(Organization.class, 
organizationId));
-        user.setDefaultRole(OBDal.getInstance().get(Role.class, roleId));
+        user.set(defaultRoleProperty, OBDal.getInstance().get(Role.class, 
roleId));
         user.setDefaultLanguage(OBDal.getInstance().get(Language.class, 
languageId));
+        if (!setOnlyRole) {
+          user.setDefaultClient(OBDal.getInstance().get(Client.class, 
clientId));
+          
user.setDefaultOrganization(OBDal.getInstance().get(Organization.class, 
organizationId));
+        }
+
         if (warehouseId != null) {
           user.setDefaultWarehouse(OBDal.getInstance().get(Warehouse.class, 
warehouseId));
         }
diff -r 5f9870e3e4e3 -r 50ec0eae0e81 
src/org/openbravo/erpCommon/obps/ActivationKey.java
--- a/src/org/openbravo/erpCommon/obps/ActivationKey.java       Tue Jun 26 
12:08:45 2012 +0200
+++ b/src/org/openbravo/erpCommon/obps/ActivationKey.java       Tue Jun 26 
12:42:26 2012 +0200
@@ -222,6 +222,14 @@
   private static final Long OUT_OF_PLATFORM_DEMAND_MAX_USERS = 2L;
   private static final String ON_DEMAND_PLATFORM_CHECK_URL = 
"http://localhost:20290/checkOnDemand?qry=";;
 
+  private static final List<String> ACTIVE_SESSION_TYPES = new 
ArrayList<String>() {
+    {
+      add("S");
+      add("CUR");
+      add("SUR");
+    }
+  };
+
   private static ActivationKey instance = new ActivationKey();
 
   /**
@@ -986,6 +994,8 @@
   private int getActiveSessions(String currentSession) {
     OBCriteria<Session> obCriteria = 
OBDal.getInstance().createCriteria(Session.class);
     obCriteria.add(Restrictions.eq(Session.PROPERTY_SESSIONACTIVE, true));
+    obCriteria.add(Restrictions.in(Session.PROPERTY_LOGINSTATUS, 
ACTIVE_SESSION_TYPES));
+
     if (currentSession != null && !currentSession.equals("")) {
       obCriteria.add(Restrictions.ne(Session.PROPERTY_ID, currentSession));
     }

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to