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