From e289cf3694a694553bb556101c05fa5c83627d57 Mon Sep 17 00:00:00 2001 From: honchar Date: Fri, 17 Mar 2017 13:23:00 +0100 Subject: [PATCH] subscription id improvements --- .../midpoint/gui/api/page/PageBase.html | 3 +- .../midpoint/gui/api/page/PageBase.java | 22 ++++++++++- .../gui/api/util/WebComponentUtil.java | 38 ++++++++++--------- .../localization/Midpoint.properties | 4 +- 4 files changed, 46 insertions(+), 21 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html index b76e1c240b2..03b8cbfc428 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.html @@ -132,7 +132,8 @@ -
+
+
diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java index aff529ea07b..9ba82db32e6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/page/PageBase.java @@ -25,6 +25,7 @@ import com.evolveum.midpoint.audit.api.AuditService; import com.evolveum.midpoint.common.SystemConfigurationHolder; +import com.evolveum.midpoint.gui.api.SubscriptionType; import com.evolveum.midpoint.model.api.*; import com.evolveum.midpoint.web.component.menu.*; import com.evolveum.midpoint.web.page.admin.configuration.*; @@ -713,7 +714,22 @@ public boolean isVisible() { }); add(version); - Label subscriptionMessage = new Label(ID_SUBSCRIPTION_MESSAGE, createStringResource("PageBase.subscriptionMessage")); + Label subscriptionMessage = new Label(ID_SUBSCRIPTION_MESSAGE, + new AbstractReadOnlyModel() { + private static final long serialVersionUID = 1L; + + @Override + public String getObject() { + String subscriptionId = getSubscriptionId(); + if (!WebComponentUtil.isSubscriptionIdCorrect(subscriptionId)){ + return createStringResource("PageBase.nonActiveSubscriptionMessage").getString() + " "; + } + if (SubscriptionType.DEMO_SUBSRIPTION.getSubscriptionType().equals(subscriptionId.substring(0, 2))){ + return createStringResource("PageBase.demoSubscriptionMessage").getString() + " "; + } + return ""; + } + }); subscriptionMessage.setOutputMarkupId(true); subscriptionMessage.add(new VisibleEnableBehaviour() { private static final long serialVersionUID = 1L; @@ -724,7 +740,9 @@ public boolean isVisible() { if (StringUtils.isEmpty(subscriptionId)){ return true; } - return !WebComponentUtil.checkSubscriptionId(subscriptionId); + return !WebComponentUtil.isSubscriptionIdCorrect(subscriptionId) || + (SubscriptionType.DEMO_SUBSRIPTION.getSubscriptionType().equals(subscriptionId.substring(0, 2)) + && WebComponentUtil.isSubscriptionIdCorrect(subscriptionId)); } }); add(subscriptionMessage); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 644aa67273f..1c3b79a32d0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -25,15 +25,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import javax.xml.datatype.DatatypeConfigurationException; @@ -1853,14 +1845,14 @@ public static Integer getIntegerParameter(PageParameters params, String key) { return value.toInteger(); } - public static boolean checkSubscriptionId(String subscriptionId){ + public static boolean isSubscriptionIdCorrect(String subscriptionId){ if (StringUtils.isEmpty(subscriptionId)) { return false; } if (!NumberUtils.isDigits(subscriptionId)){ return false; } - if (subscriptionId.length() < 15){ + if (subscriptionId.length() < 11){ return false; } String subscriptionType = subscriptionId.substring(0, 2); @@ -1874,15 +1866,27 @@ public static boolean checkSubscriptionId(String subscriptionId){ if (!isTypeCorrect){ return false; } - String expDateStr = subscriptionId.substring(2, 6); - SimpleDateFormat dateFormat = new SimpleDateFormat("MMyy"); + String substring1 = subscriptionId.substring(2, 4); + String substring2 = subscriptionId.substring(4, 6); try { - Date expDate = dateFormat.parse(expDateStr); - Date currentDate = new Date(System.currentTimeMillis());; - if (expDate.before(currentDate)){ + if (Integer.parseInt(substring1) < 1 || Integer.parseInt(substring1) > 12) { return false; } - } catch (Exception ex){ + + SimpleDateFormat dateFormat = new SimpleDateFormat("yy"); + String currentYear = dateFormat.format(Calendar.getInstance().getTime()); + if (Integer.parseInt(substring2) < Integer.parseInt(currentYear)){ + return false; + } + + String expDateStr = subscriptionId.substring(2, 6); + dateFormat = new SimpleDateFormat("MMyy"); + Date expDate = dateFormat.parse(expDateStr); + Date currentDate = new Date(System.currentTimeMillis()); + if (expDate.before(currentDate)) { + return false; + } + } catch (Exception ex) { return false; } VerhoeffCheckDigit checkDigit = new VerhoeffCheckDigit(); diff --git a/gui/admin-gui/src/main/resources/localization/Midpoint.properties b/gui/admin-gui/src/main/resources/localization/Midpoint.properties index 7ad495a92ee..31683d1343f 100644 --- a/gui/admin-gui/src/main/resources/localization/Midpoint.properties +++ b/gui/admin-gui/src/main/resources/localization/Midpoint.properties @@ -1149,6 +1149,8 @@ PageBase.clearCssCache=Clear less/js cache pageBase.midPointVersion=${pom.version}, ${git.describe} pageBase.unknownBuildNumber=unknown PageBase.subscriptionMessage=Non-subscription. +PageBase.nonActiveSubscriptionMessage=Powered by a free midPoint community subscription. Please consider purchasing subscription today. +PageBase.demoSubscriptionMessage=Powered by Evolveum demo subscription. PageBulkAction.async=Asynchronous PageBulkAction.button.start=Start PageBulkAction.message.emptyString=Inserted bulk action is empty. Please provide non-empty script. @@ -2970,7 +2972,7 @@ PageAdmin.menu.assignments=Assignments PageAdmin.menu.credentials=Credentials PageAdmin.menu.request=Request a role PageTemplate.version=Version\: -PageTemplate.copy=Copyright © 2010-2016 Evolveum and partners. Thank you for using midPoint +PageTemplate.copy=Copyright © 2010-2017 Evolveum and partners. Thank you for using midPoint PageTemplate.toggleNavigation=Toggle navigation PageTemplate.user=user PageTemplate.couldntNavigateBreadcrumb=Couldn't navigate breadcrumb, reason\: {0}