mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fixing https://github.com/wso2/product-iots/issues/1119: monetization
This commit is contained in:
parent
09bf240ff6
commit
8223588e82
@ -1,112 +1,137 @@
|
|||||||
{
|
{
|
||||||
"Logo": {
|
"Logo": {
|
||||||
"name": "Cloud",
|
"name": "Cloud",
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt",
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt",
|
||||||
"target": "_parent"
|
"target": "_parent"
|
||||||
},
|
},
|
||||||
"Main": {
|
"Main": {
|
||||||
"Domain": {
|
"Domain": {
|
||||||
"url": "#",
|
"url": "#",
|
||||||
"icon": "fw fw-organization",
|
"icon": "fw fw-organization",
|
||||||
"isAdminOnly": false,
|
"isAdminOnly": false,
|
||||||
"target": "_parent",
|
"target": "_parent",
|
||||||
"dropDown": {
|
"dropDown": {
|
||||||
"Organization": {
|
"Organization": {
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/organization.jag",
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/organization.jag",
|
||||||
"icon": "fw fw-organization",
|
"icon": "fw fw-organization",
|
||||||
"dropDown": "false",
|
"dropDown": "false",
|
||||||
"target": "_self"
|
"target": "_self"
|
||||||
|
},
|
||||||
|
"Members": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user.jag",
|
||||||
|
"icon": "fa fa-users",
|
||||||
|
"dropDown": "false",
|
||||||
|
"target": "_self"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"Members": {
|
"Account": {
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user.jag",
|
"url": "#",
|
||||||
"icon": "fa fa-users",
|
"icon": "fw fw-resource",
|
||||||
"dropDown": "false",
|
"isAdminOnly": false,
|
||||||
"target": "_self"
|
"billingEnabled": true,
|
||||||
|
"billingApi": {
|
||||||
|
"username": "admin",
|
||||||
|
"password": "admin"
|
||||||
|
},
|
||||||
|
"cloudMgtIndexPage": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/index.jag",
|
||||||
|
"dropDown": {
|
||||||
|
"Upgrade Now": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/payment-plans.jag?cloud-type=device_cloud",
|
||||||
|
"icon": "fw fw-export",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
},
|
||||||
|
"Request Extension": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/contact-us.jag?cloud-type=device_cloud&request-extension=true",
|
||||||
|
"icon": "fa fa-mail",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Support": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/contact-us.jag?cloud-type=device_cloud",
|
||||||
|
"icon": "fw fw-mail",
|
||||||
|
"isAdminOnly": false,
|
||||||
|
"target": "_self",
|
||||||
|
"dropDown": "false"
|
||||||
|
},
|
||||||
|
"Documentation": {
|
||||||
|
"url": "#",
|
||||||
|
"icon": "fw fw-document",
|
||||||
|
"isAdminOnly": false,
|
||||||
|
"dropDown": {
|
||||||
|
"Device Cloud": {
|
||||||
|
"id": "device_cloud",
|
||||||
|
"url": "https://docs.wso2.com/display/DeviceCloud/WSO2+Device+Cloud+Documentation",
|
||||||
|
"icon": "fw fw-mobile",
|
||||||
|
"target": "_blank"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"Support": {
|
"User": {
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/contact-us.jag",
|
"url": "#",
|
||||||
"icon": "fw fw-mail",
|
|
||||||
"isAdminOnly": false,
|
|
||||||
"target": "_self",
|
|
||||||
"dropDown": "false"
|
|
||||||
},
|
|
||||||
"Documentation": {
|
|
||||||
"url": "#",
|
|
||||||
"icon": "fw fw-document",
|
|
||||||
"isAdminOnly": false,
|
|
||||||
"dropDown": {
|
|
||||||
"Device Cloud": {
|
|
||||||
"id": "device_cloud",
|
|
||||||
"url": "https://docs.wso2.com/display/DeviceCloud/WSO2+Device+Cloud+Documentation",
|
|
||||||
"icon": "fw fw-mobile",
|
|
||||||
"target": "_blank"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"User": {
|
|
||||||
"url": "#",
|
|
||||||
"icon": "fw fw-user",
|
|
||||||
"dropDown": {
|
|
||||||
"Profile": {
|
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user-profile.jag",
|
|
||||||
"icon": "fw fw-user",
|
"icon": "fw fw-user",
|
||||||
"dropDown": "true",
|
"dropDown": {
|
||||||
"target": "_self"
|
"Profile": {
|
||||||
},
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user-profile.jag",
|
||||||
"Change Password": {
|
"icon": "fw fw-user",
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/change-password.jag",
|
"dropDown": "true",
|
||||||
"icon": "fw fw-lock",
|
"target": "_self"
|
||||||
"dropDown": "true",
|
},
|
||||||
"target": "_self"
|
"Change Password": {
|
||||||
},
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/change-password.jag",
|
||||||
"Logout": {
|
"icon": "fw fw-lock",
|
||||||
"url": "https://api.cloud.wso2.com/publisher/site/pages/logout.jag",
|
"dropDown": "true",
|
||||||
"icon": "fw fw-sign-out",
|
"target": "_self"
|
||||||
"dropDown": "true",
|
},
|
||||||
"target": "_self"
|
"Logout": {
|
||||||
}
|
"url": "https://device.cloud.wso2.com/devicemgt/logout",
|
||||||
}
|
"icon": "fw fw-sign-out",
|
||||||
},
|
"dropDown": "true",
|
||||||
"Expand": {
|
"target": "_self"
|
||||||
"Clouds": {
|
}
|
||||||
"API Cloud": {
|
}
|
||||||
"id": "api_cloud",
|
|
||||||
"url": "https://api.cloud.wso2.com/publisher",
|
|
||||||
"icon": "fw fw-api fw-3x",
|
|
||||||
"dropDown": "true",
|
|
||||||
"target": "_self"
|
|
||||||
},
|
|
||||||
"Integration Cloud": {
|
|
||||||
"id": "integration_cloud",
|
|
||||||
"url": "https://integration.cloud.wso2.com/appmgt",
|
|
||||||
"icon": "fw fw-service fw-3x",
|
|
||||||
"dropDown": "true",
|
|
||||||
"target": "_self"
|
|
||||||
},
|
|
||||||
"Identity Cloud": {
|
|
||||||
"id": "integration_cloud",
|
|
||||||
"url": "https://identity.cloud.wso2.com/admin",
|
|
||||||
"icon": "fw fw-security fw-3x",
|
|
||||||
"dropDown": "true",
|
|
||||||
"target": "_self"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"Actions": {
|
"Expand": {
|
||||||
"Organization": {
|
"Clouds": {
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/organization.jag",
|
"API Cloud": {
|
||||||
"icon": "fw fw-organization fw-3x",
|
"id": "api_cloud",
|
||||||
"dropDown": "true",
|
"url": "https://api.cloud.wso2.com/publisher",
|
||||||
"target": "_self"
|
"icon": "fw fw-api fw-3x",
|
||||||
},
|
"dropDown": "true",
|
||||||
"Members": {
|
"target": "_self"
|
||||||
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user.jag",
|
},
|
||||||
"icon": "fa fa-users fa-3x",
|
"Integration Cloud": {
|
||||||
"dropDown": "true",
|
"id": "integration_cloud",
|
||||||
"target": "_self"
|
"url": "https://integration.cloud.wso2.com/appmgt",
|
||||||
}
|
"icon": "fw fw-service fw-3x",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
},
|
||||||
|
"Identity Cloud": {
|
||||||
|
"id": "integration_cloud",
|
||||||
|
"url": "https://identity.cloud.wso2.com/admin",
|
||||||
|
"icon": "fw fw-security fw-3x",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Actions": {
|
||||||
|
"Organization": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/organization.jag",
|
||||||
|
"icon": "fw fw-organization fw-3x",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
},
|
||||||
|
"Members": {
|
||||||
|
"url": "https://cloudmgt.cloud.wso2.com/cloudmgt/site/pages/user.jag",
|
||||||
|
"icon": "fa fa-users fa-3x",
|
||||||
|
"dropDown": "true",
|
||||||
|
"target": "_self"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||||
|
* either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
$(document).ready(function(){
|
||||||
|
var expireModal = $('#expire-modal-content');
|
||||||
|
modalDialog.content(expireModal.find('.modal-body'));
|
||||||
|
modalDialog.header(expireModal.find('.modal-header .modal-title'));
|
||||||
|
modalDialog.footer(expireModal.find('.modal-footer'));
|
||||||
|
modalDialog.show();
|
||||||
|
});
|
||||||
@ -15,6 +15,7 @@
|
|||||||
specific language governing permissions and limitations
|
specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
}}
|
}}
|
||||||
|
{{unit "cdmf.unit.ui.modal"}}
|
||||||
<ul class="nav navbar-right float-remove-xs text-center-xs">
|
<ul class="nav navbar-right float-remove-xs text-center-xs">
|
||||||
{{#each Main}}
|
{{#each Main}}
|
||||||
<li class="visible-inline-block">
|
<li class="visible-inline-block">
|
||||||
@ -26,23 +27,35 @@
|
|||||||
{{#if this.isDomain }}
|
{{#if this.isDomain }}
|
||||||
{{@user.domain}}
|
{{@user.domain}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{@key}}
|
{{#if this.label}}
|
||||||
|
{{this.label}}
|
||||||
|
{{else}}
|
||||||
|
{{@key}}
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
">
|
">
|
||||||
<span class="icon fw-stack fw-lg" {{#if this.isSupport}} style="color: #ff8c27;" {{/if}}>
|
<span class="icon fw-stack fw-lg" {{#if this.isSupport}} style="color: #ff8c27;" {{/if}} {{#if this.color}} style="color: {{this.color}};" {{/if}}>
|
||||||
<i class="{{this.icon}} fw-stack-1x" title="
|
<i class="{{this.icon}} fw-stack-1x" title="
|
||||||
{{#if this.isDomain }}
|
{{#if this.isDomain }}
|
||||||
{{@user.domain}}
|
{{@user.domain}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{@key}}
|
{{#if this.label}}
|
||||||
|
{{this.label}}
|
||||||
|
{{else}}
|
||||||
|
{{@key}}
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
"></i>
|
"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="hidden-xs {{#if this.isDomain }} username {{/if}}">
|
<span class="hidden-xs {{#if this.isDomain }} username {{/if}}" {{#if this.color}} style="color: {{this.color}};" {{/if}}>
|
||||||
{{#if this.isDomain }}
|
{{#if this.isDomain }}
|
||||||
{{@user.domain}}
|
{{@user.domain}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{@key}}
|
{{#if this.label}}
|
||||||
|
{{this.label}}
|
||||||
|
{{else}}
|
||||||
|
{{@key}}
|
||||||
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</span>
|
</span>
|
||||||
{{#if this.dropDownVisible}}
|
{{#if this.dropDownVisible}}
|
||||||
@ -136,6 +149,42 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{#if Main.Account.isExpired}}
|
||||||
|
<div id="expire-modal-content" class="hide">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="pull-left modal-title">
|
||||||
|
<span>
|
||||||
|
<span class="fw-stack">
|
||||||
|
<i class="fw fw-circle-outline fw-stack-2x"></i>
|
||||||
|
<i class="fw fw-alert fw-stack-1x"></i>
|
||||||
|
</span> Trial Expired
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i
|
||||||
|
class="fw fw-cancel"></i></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body add-margin-top-2x add-margin-bottom-2x">
|
||||||
|
<div id="notification-error-msg" class="alert alert-danger hidden" role="alert">
|
||||||
|
<i class="icon fw fw-error"></i><span></span>
|
||||||
|
</div>
|
||||||
|
<div id="user-groups">Was it a successful trial? Your trial unfortunately expired, however it is really easy to upgrade to a paid plan and keep using WSO2 Device Cloud</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<div class="buttons">
|
||||||
|
<a href="{{Main.Account.dropDown.[Upgrade Now].url}}" id="expire-upgrade-now-link" class="btn-operations">
|
||||||
|
Upgrade Now
|
||||||
|
</a>
|
||||||
|
<a href="{{Main.Account.dropDown.[Request Extension].url}}" id="expire-req-ext-link" class="btn-operations">
|
||||||
|
Request Exception
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#zone "bottomJs"}}
|
{{#zone "bottomJs"}}
|
||||||
|
{{#if Main.Account.isExpired}}
|
||||||
|
{{js "/js/monetize.js"}}
|
||||||
|
{{/if}}
|
||||||
{{js "/js/user-menu.js"}}
|
{{js "/js/user-menu.js"}}
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
@ -20,6 +20,10 @@ function onRequest(context) {
|
|||||||
var constants = require("/app/modules/constants.js");
|
var constants = require("/app/modules/constants.js");
|
||||||
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
var mdmProps = require("/app/modules/conf-reader/main.js")["conf"];
|
||||||
var cloudProps = require("/app/modules/conf-reader/cloud.js")["conf"];
|
var cloudProps = require("/app/modules/conf-reader/cloud.js")["conf"];
|
||||||
|
var log = new Log("user-menu.js");
|
||||||
|
|
||||||
|
var sqlDateFormatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
var user = context.user;
|
var user = context.user;
|
||||||
var isSuperTenant = false;
|
var isSuperTenant = false;
|
||||||
if (user.tenantId == -1234) {
|
if (user.tenantId == -1234) {
|
||||||
@ -32,6 +36,79 @@ function onRequest(context) {
|
|||||||
viewModal.Main.Domain.isDomain = true;
|
viewModal.Main.Domain.isDomain = true;
|
||||||
viewModal.Main.Support.isSupport = true;
|
viewModal.Main.Support.isSupport = true;
|
||||||
|
|
||||||
|
//get billing info
|
||||||
|
var type = {PAID: "PAID", TRIAL: "TRIAL", FREE: "FREE"};
|
||||||
|
var status = {
|
||||||
|
ACTIVE: "ACTIVE",
|
||||||
|
INACTIVE: "INACTIVE",
|
||||||
|
EXTENDED: "EXTENDED",
|
||||||
|
PENDING_DISABLED: "PENDING_DISABLED",
|
||||||
|
DISABLED: "DISABLED"
|
||||||
|
};
|
||||||
|
|
||||||
|
var BILLING_INFO_KEY = 'BILLING_INFO_' + context.user.domain;
|
||||||
|
var BILLING_INFO_RETRY_COUNT_KEY = 'BILLING_INFO_RETRY_COUNT_' + context.user.domain;
|
||||||
|
|
||||||
|
if (viewModal.Main.Account.billingEnabled) {
|
||||||
|
if (!session.get(BILLING_INFO_KEY) || daysAfterLastCheck(session.get(BILLING_INFO_KEY).lastChecked) > 1) {
|
||||||
|
session.put(BILLING_INFO_RETRY_COUNT_KEY, 0);
|
||||||
|
getBillingData(getLoginCookie());
|
||||||
|
}
|
||||||
|
|
||||||
|
var billingInfo = session.get(BILLING_INFO_KEY);
|
||||||
|
|
||||||
|
var isExpired = false;
|
||||||
|
var isTrial = false;
|
||||||
|
var trialPeriod = 14;
|
||||||
|
var cloudMgtIndexPage = viewModal.Main.Account.cloudMgtIndexPage;
|
||||||
|
|
||||||
|
if (!billingInfo) {
|
||||||
|
log.info("Access denied for tenant: " + context.user.domain
|
||||||
|
+ " with a NULL subscription. Redirected to CloudMgt");
|
||||||
|
response.sendRedirect(cloudMgtIndexPage);
|
||||||
|
exit(0);
|
||||||
|
} else if (billingInfo.isPaidAccount && (billingInfo.billingPlanStatus === status.ACTIVE
|
||||||
|
|| billingInfo.billingPlanStatus === status.PENDING_DISABLED)) {
|
||||||
|
isExpired = false;
|
||||||
|
//change menu item name
|
||||||
|
delete viewModal.Main.Account.color;
|
||||||
|
delete viewModal.Main.Account["Request Extension"];
|
||||||
|
} else if (!billingInfo.isPaidAccount) {
|
||||||
|
var accountContent = "Account";
|
||||||
|
if (billingInfo.billingPlanStatus === status.ACTIVE || billingInfo.billingPlanStatus === status.EXTENDED) {
|
||||||
|
var currDate = new java.util.Date();
|
||||||
|
var endDate = sqlDateFormatter.parse(billingInfo.endDate);
|
||||||
|
var diff = endDate.getTime() - currDate.getTime();
|
||||||
|
isTrial = true;
|
||||||
|
if (diff > 0) {
|
||||||
|
noOfDays = java.util.concurrent.TimeUnit.MILLISECONDS.toDays(diff);
|
||||||
|
accountContent = "Trial - " + (noOfDays + 1) + " days to upgrade";
|
||||||
|
} else {
|
||||||
|
isExpired = true;
|
||||||
|
accountContent = "Trial Expired";
|
||||||
|
}
|
||||||
|
} else if (billingInfo.billingPlanStatus === status.INACTIVE) {
|
||||||
|
isExpired = false;
|
||||||
|
isTrial = true;
|
||||||
|
accountContent = "Trial " + (trialPeriod) + " days tade";
|
||||||
|
}
|
||||||
|
//change menu item name
|
||||||
|
viewModal.Main.Account.label = accountContent;
|
||||||
|
viewModal.Main.Account.isDomain = false;
|
||||||
|
viewModal.Main.Account.color = "red";
|
||||||
|
viewModal.Main.Account.isExpired = isExpired;
|
||||||
|
} else if (billingInfo.billingPlanStatus === status.DISABLED) {
|
||||||
|
log.info(
|
||||||
|
"Access denied for tenant: " + context.user.domain
|
||||||
|
+ " with a DISABLED subscription. Redirected to CloudMgt");
|
||||||
|
response.sendRedirect(cloudMgtIndexPage);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// delete viewModal.Main.Account;
|
||||||
|
viewModal.Main.Account = {"billingEnabled": false}
|
||||||
|
}
|
||||||
|
|
||||||
for (var key in viewModal.Main) {
|
for (var key in viewModal.Main) {
|
||||||
var tempDropDownCheck = false;
|
var tempDropDownCheck = false;
|
||||||
|
|
||||||
@ -80,4 +157,63 @@ function onRequest(context) {
|
|||||||
viewModal.USER_SESSION_KEY = session.get(constants["USER_SESSION_KEY"]);
|
viewModal.USER_SESSION_KEY = session.get(constants["USER_SESSION_KEY"]);
|
||||||
viewModal.isCloud = mdmProps.isCloud;
|
viewModal.isCloud = mdmProps.isCloud;
|
||||||
return viewModal;
|
return viewModal;
|
||||||
}
|
|
||||||
|
function getBillingData(cookie, attempt) {
|
||||||
|
serviceUrl = "https://cloudmgt.cloudstaging.wso2.com/cloudmgt/site/blocks/admin/admin.jag";
|
||||||
|
result = post(serviceUrl,
|
||||||
|
'action=getBillingStatusOfTenant&tenantDomain=' + context.user.domain + '&cloudType=device_cloud',
|
||||||
|
{"Cookie": cookie});
|
||||||
|
if (result.data) {
|
||||||
|
var billing = JSON.parse(result.data).data;
|
||||||
|
if (!billing.isPaidAccount && billing.billingPlanStatus === status.INACTIVE) {
|
||||||
|
var rv = post(serviceUrl,
|
||||||
|
'action=informFirstLogin&tenantDomain=' + context.user.domain + '&cloudType=device_cloud',
|
||||||
|
{"Cookie": cookie});
|
||||||
|
if (!attempt) attempt = 1;
|
||||||
|
var failStr = "First login capturing failed";
|
||||||
|
var successStr = "First login captured successfully";
|
||||||
|
if (rv.data.substring(0, failStr.length) === failStr && attempt < 3) {
|
||||||
|
getBillingData(cookie, ++attempt); //retry
|
||||||
|
} else if(rv.data.substring(0, successStr.length) === successStr) {
|
||||||
|
getBillingData(cookie); //get expiry details
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
session.put(BILLING_INFO_KEY, JSON.parse(result.data).data);
|
||||||
|
session.put(BILLING_INFO_RETRY_COUNT_KEY, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLoginCookie(){
|
||||||
|
var retryCount = session.get(BILLING_INFO_RETRY_COUNT_KEY) || 0;
|
||||||
|
if (retryCount <= 3) {
|
||||||
|
retryCount++;
|
||||||
|
session.put(BILLING_INFO_RETRY_COUNT_KEY, retryCount);
|
||||||
|
var username = viewModal.Main.Account.billingApi.username;
|
||||||
|
var password = viewModal.Main.Account.billingApi.password;
|
||||||
|
var serviceUrl = "https://cloudmgt.cloudstaging.wso2.com/cloudmgt/site/blocks/user/authenticate/ajax/login.jag";
|
||||||
|
var result = post(serviceUrl, 'action=login&userName=' + username + '&password=' + password,
|
||||||
|
{"Content-Type": "application/x-www-form-urlencoded"});
|
||||||
|
if (result.data && result.data.trim() === "true") {
|
||||||
|
var cookieHeader = result.xhr.getResponseHeader("Set-Cookie");
|
||||||
|
if (cookieHeader) {
|
||||||
|
var cookie = cookieHeader.split(";")[0];
|
||||||
|
return cookie;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("Billing info api failed after " + session.get(BILLING_INFO_RETRY_COUNT_KEY) + " attempts!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function daysAfterLastCheck(checkedDate){
|
||||||
|
if(!checkedDate) return 0;
|
||||||
|
var currDate = new java.util.Date();
|
||||||
|
var endDate = sqlDateFormatter.parse(checkedDate);
|
||||||
|
var diff = endDate.getTime() - currDate.getTime();
|
||||||
|
if (diff > 0) {
|
||||||
|
return java.util.concurrent.TimeUnit.MILLISECONDS.toDays(diff);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user