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}