mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
This commit is contained in:
commit
12713f3301
@ -26,6 +26,7 @@ import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
|||||||
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
import org.wso2.carbon.device.mgt.common.operation.mgt.OperationManager;
|
||||||
import org.wso2.carbon.device.mgt.common.push.notification.NotificationStrategy;
|
import org.wso2.carbon.device.mgt.common.push.notification.NotificationStrategy;
|
||||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||||
|
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationProvider;
|
||||||
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
import org.wso2.carbon.device.mgt.common.spi.DeviceManagementService;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||||
@ -74,7 +75,7 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
}
|
}
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
throw new DeviceManagementException("Error occurred while adding device management provider '" +
|
throw new DeviceManagementException("Error occurred while adding device management provider '" +
|
||||||
deviceType + "'", e);
|
deviceType + "'", e);
|
||||||
}
|
}
|
||||||
if (isSharedWithAllTenants) {
|
if (isSharedWithAllTenants) {
|
||||||
DeviceTypeIdentifier deviceTypeIdentifier = new DeviceTypeIdentifier(deviceType);
|
DeviceTypeIdentifier deviceTypeIdentifier = new DeviceTypeIdentifier(deviceType);
|
||||||
@ -137,10 +138,16 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
deviceTypeIdentifier = new DeviceTypeIdentifier(deviceManagementService.getType(), tenantId);
|
deviceTypeIdentifier = new DeviceTypeIdentifier(deviceManagementService.getType(), tenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pushNoteConfig != null) {
|
if (pushNoteConfig != null) {
|
||||||
NotificationStrategy notificationStrategy =
|
PushNotificationProvider provider = DeviceManagementDataHolder.getInstance()
|
||||||
DeviceManagementDataHolder.getInstance().getPushNotificationProviderRepository().getProvider(
|
.getPushNotificationProviderRepository().getProvider(pushNoteConfig.getType());
|
||||||
pushNoteConfig.getType()).getNotificationStrategy(pushNoteConfig);
|
if (provider == null) {
|
||||||
|
throw new DeviceManagementException(
|
||||||
|
"No registered push notification provider found for the type: '" +
|
||||||
|
pushNoteConfig.getType() + "'.");
|
||||||
|
}
|
||||||
|
NotificationStrategy notificationStrategy = provider.getNotificationStrategy(pushNoteConfig);
|
||||||
operationManagerRepository.addOperationManager(deviceTypeIdentifier, new OperationManagerImpl(
|
operationManagerRepository.addOperationManager(deviceTypeIdentifier, new OperationManagerImpl(
|
||||||
notificationStrategy));
|
notificationStrategy));
|
||||||
} else {
|
} else {
|
||||||
@ -172,7 +179,8 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
deviceTypeName = provider.getType().toLowerCase();
|
deviceTypeName = provider.getType().toLowerCase();
|
||||||
ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
|
ProvisioningConfig provisioningConfig = provider.getProvisioningConfig();
|
||||||
int tenantId = DeviceManagerUtil.getTenantId(provisioningConfig.getProviderTenantDomain());
|
int tenantId = DeviceManagerUtil.getTenantId(provisioningConfig.getProviderTenantDomain());
|
||||||
DeviceManagerUtil.registerDeviceType(deviceTypeName, tenantId, provisioningConfig.isSharedWithAllTenants());
|
DeviceManagerUtil.registerDeviceType(deviceTypeName, tenantId,
|
||||||
|
provisioningConfig.isSharedWithAllTenants());
|
||||||
registerPushNotificationStrategy(provider);
|
registerPushNotificationStrategy(provider);
|
||||||
//TODO:
|
//TODO:
|
||||||
//This is a temporory fix.
|
//This is a temporory fix.
|
||||||
@ -180,12 +188,13 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
//until fix that, use following variable to enable and disable of checking user authorization.
|
//until fix that, use following variable to enable and disable of checking user authorization.
|
||||||
|
|
||||||
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(),
|
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(),
|
||||||
provider.getDeviceManager().requireDeviceAuthorization());
|
provider.getDeviceManager()
|
||||||
|
.requireDeviceAuthorization());
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
|
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
|
||||||
etc - should not block the initialization of other device management providers */
|
etc - should not block the initialization of other device management providers */
|
||||||
log.error("Error occurred while initializing device management provider '" +
|
log.error("Error occurred while initializing device management provider '" +
|
||||||
provider.getType() + "'", e);
|
provider.getType() + "'", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.isInited = true;
|
this.isInited = true;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"appContext": "/emm/",
|
"appContext": "/devicemgt/",
|
||||||
"webAgentContext" : "/emm-web-agent/",
|
"webAgentContext" : "/emm-web-agent/",
|
||||||
"apiContext": "api",
|
"apiContext": "api",
|
||||||
"httpsURL" : "%https.ip%",
|
"httpsURL" : "%https.ip%",
|
||||||
|
|||||||
@ -26,25 +26,26 @@
|
|||||||
{{/zone}}
|
{{/zone}}
|
||||||
|
|
||||||
{{#zone "content"}}
|
{{#zone "content"}}
|
||||||
<div class="wr-content">
|
<div class="row">
|
||||||
{{#if permissions.VIEW_DASHBOARD}}
|
{{#if permissions.VIEW_DASHBOARD}}
|
||||||
<div class="row wr-stats-board">
|
<div class="col-md-3 wr-stats-board">
|
||||||
<div class="col-md-4">
|
<div class="wr-stats-board-tile">
|
||||||
<div class="wr-stats-board-tile">
|
<div class="tile-name">Devices</div>
|
||||||
<div class="tile-name">Devices</div>
|
<div>
|
||||||
<div>
|
<div class="tile-icon"><i class="fw fw-mobile"></i></div>
|
||||||
<div class="tile-icon"><i class="fw fw-mobile"></i></div>
|
<div class="tile-stats">
|
||||||
<div class="tile-stats">
|
<span id="device-count">{{deviceCount}}</span>
|
||||||
<span id="device-count">{{device_count}}</span>
|
|
||||||
<span class="tile-stats-free">
|
<span class="tile-stats-free">
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/devices">
|
{{#if deviceCount}}
|
||||||
<span class="fw-stack">
|
<a href="{{@app.context}}/devices">
|
||||||
<i class="fw fw-ring fw-stack-2x"></i>
|
<span class="fw-stack">
|
||||||
<i class="fw fw-view fw-stack-1x"></i>
|
<i class="fw fw-ring fw-stack-2x"></i>
|
||||||
</span>
|
<i class="fw fw-view fw-stack-1x"></i>
|
||||||
View
|
</span>
|
||||||
</a>
|
View
|
||||||
|
</a>
|
||||||
|
{{/if}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/device/enroll">
|
<a href="{{@app.context}}/device/enroll">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -54,20 +55,19 @@
|
|||||||
Add
|
Add
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row wr-stats-board">
|
<div class="col-md-3 wr-stats-board">
|
||||||
<div class="col-md-4">
|
<div class="wr-stats-board-tile">
|
||||||
<div class="wr-stats-board-tile">
|
<div class="tile-name">Groups</div>
|
||||||
<div class="tile-name">Groups</div>
|
<div>
|
||||||
<div>
|
<div class="tile-icon"><i class="fw fw-grouping"></i></div>
|
||||||
<div class="tile-icon"><i class="fw fw-grouping"></i></div>
|
<div class="tile-stats">
|
||||||
<div class="tile-stats">
|
<span id="group-count">{{groupCount}}</span>
|
||||||
<span id="group-count">{{group_count}}</span>
|
|
||||||
<span class="tile-stats-free">
|
<span class="tile-stats-free">
|
||||||
|
{{#if groupCount}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/groups">
|
<a href="{{@app.context}}/groups">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -76,6 +76,7 @@
|
|||||||
</span>
|
</span>
|
||||||
View
|
View
|
||||||
</a>
|
</a>
|
||||||
|
{{/if}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/group/add">
|
<a href="{{@app.context}}/group/add">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -85,20 +86,19 @@
|
|||||||
Add
|
Add
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row wr-stats-board">
|
<div class="col-md-3 wr-stats-board">
|
||||||
<div class="col-md-4">
|
<div class="wr-stats-board-tile">
|
||||||
<div class="wr-stats-board-tile">
|
<div class="tile-name">Users</div>
|
||||||
<div class="tile-name">Users</div>
|
<div>
|
||||||
<div>
|
<div class="tile-icon"><i class="fw fw-user"></i></div>
|
||||||
<div class="tile-icon"><i class="fw fw-user"></i></div>
|
<div class="tile-stats">
|
||||||
<div class="tile-stats">
|
<span id="user-count">{{userCount}}</span>
|
||||||
<span id="user-count">{{user_count}}</span>
|
|
||||||
<span class="tile-stats-free">
|
<span class="tile-stats-free">
|
||||||
|
{{#if userCount}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/users">
|
<a href="{{@app.context}}/users">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -107,6 +107,7 @@
|
|||||||
</span>
|
</span>
|
||||||
View
|
View
|
||||||
</a>
|
</a>
|
||||||
|
{{/if}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/user/add">
|
<a href="{{@app.context}}/user/add">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -116,20 +117,19 @@
|
|||||||
Add
|
Add
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row wr-stats-board">
|
<div class="col-md-3 wr-stats-board">
|
||||||
<div class="col-md-4">
|
<div class="wr-stats-board-tile">
|
||||||
<div class="wr-stats-board-tile">
|
<div class="tile-name">Policies</div>
|
||||||
<div class="tile-name">Policies</div>
|
<div>
|
||||||
<div>
|
<div class="tile-icon"><i class="fw fw-policy"></i></div>
|
||||||
<div class="tile-icon"><i class="fw fw-policy"></i></div>
|
<div class="tile-stats">
|
||||||
<div class="tile-stats">
|
<span id="policy-count">{{policyCount}}</span>
|
||||||
<span id="policy-count">{{policy_count}}</span>
|
|
||||||
<span class="tile-stats-free">
|
<span class="tile-stats-free">
|
||||||
|
{{#if policyCount}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/policies">
|
<a href="{{@app.context}}/policies">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -138,6 +138,7 @@
|
|||||||
</span>
|
</span>
|
||||||
View
|
View
|
||||||
</a>
|
</a>
|
||||||
|
{{/if}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/policy/add">
|
<a href="{{@app.context}}/policy/add">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -147,20 +148,19 @@
|
|||||||
Add
|
Add
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row wr-stats-board">
|
<div class="col-md-3 wr-stats-board">
|
||||||
<div class="col-md-4">
|
<div class="wr-stats-board-tile">
|
||||||
<div class="wr-stats-board-tile">
|
<div class="tile-name">Roles</div>
|
||||||
<div class="tile-name">Roles</div>
|
<div>
|
||||||
<div>
|
<div class="tile-icon"><i class="fw fw-bookmark"></i></div>
|
||||||
<div class="tile-icon"><i class="fw fw-bookmark"></i></div>
|
<div class="tile-stats">
|
||||||
<div class="tile-stats">
|
<span id="role-count">{{roleCount}}</span>
|
||||||
<span id="role-count">{{role_count}}</span>
|
|
||||||
<span class="tile-stats-free">
|
<span class="tile-stats-free">
|
||||||
|
{{#if roleCount}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a id="device-count-view-btn" href="{{@app.context}}/roles">
|
<a id="device-count-view-btn" href="{{@app.context}}/roles">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -169,6 +169,7 @@
|
|||||||
</span>
|
</span>
|
||||||
View
|
View
|
||||||
</a>
|
</a>
|
||||||
|
{{/if}}
|
||||||
<!--suppress HtmlUnknownTarget -->
|
<!--suppress HtmlUnknownTarget -->
|
||||||
<a href="{{@app.context}}/roles/add-role">
|
<a href="{{@app.context}}/roles/add-role">
|
||||||
<span class="fw-stack">
|
<span class="fw-stack">
|
||||||
@ -178,32 +179,14 @@
|
|||||||
Add
|
Add
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
Permission denied
|
<h1 class="page-sub-title">
|
||||||
|
Permitted None
|
||||||
|
</h1>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div id="qr-code-modal" data-enrollment-url="{{enrollmentURL}}" class="hidden">
|
|
||||||
<div class="content">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-5 col-md-6 col-centered">
|
|
||||||
<h3>
|
|
||||||
Scan QR code to start enrollment
|
|
||||||
</h3>
|
|
||||||
<h4>
|
|
||||||
Please scan the QR code using your mobile device to retrieve enrollment URL.
|
|
||||||
</h4>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-body col-centered ">
|
|
||||||
<div class="qr-code"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/zone}}
|
{{/zone}}
|
||||||
@ -32,16 +32,16 @@ function onRequest() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var page = {};
|
var viewModel = {};
|
||||||
page.permissions = permissions;
|
viewModel.permissions = permissions;
|
||||||
page.enrollmentURL = devicemgtProps.enrollmentURL;
|
viewModel.enrollmentURL = devicemgtProps.enrollmentURL;
|
||||||
page.device_count = deviceModule.getDevicesCount();
|
viewModel.deviceCount = deviceModule.getDevicesCount();
|
||||||
//TODO: Enable Group Management Service API on CDMF
|
//TODO: Enable Group Management Service API on CDMF
|
||||||
//page.group_count = groupModule.getGroupCount();
|
//page.group_count = groupModule.getGroupCount();
|
||||||
page.group_count = -1;
|
viewModel.groupCount = -1;
|
||||||
page.user_count = userModule.getUsersCount();
|
viewModel.userCount = userModule.getUsersCount();
|
||||||
page.policy_count = policyModule.getPoliciesCount();
|
viewModel.policyCount = policyModule.getPoliciesCount();
|
||||||
page.role_count = userModule.getRolesCount();
|
viewModel.roleCount = userModule.getRolesCount();
|
||||||
|
|
||||||
return page;
|
return viewModel;
|
||||||
}
|
}
|
||||||
@ -27,12 +27,12 @@ function onRequest(context) {
|
|||||||
var utility = require("/app/modules/utility.js").utility;
|
var utility = require("/app/modules/utility.js").utility;
|
||||||
var typesListResponse = deviceModule.getDeviceTypes();
|
var typesListResponse = deviceModule.getDeviceTypes();
|
||||||
if (typesListResponse["status"] == "success") {
|
if (typesListResponse["status"] == "success") {
|
||||||
var deviceTypes = typesListResponse["content"];
|
var deviceTypes = typesListResponse.content.deviceTypes;
|
||||||
if (deviceTypes) {
|
if (deviceTypes) {
|
||||||
var deviceTypesList = [], virtualDeviceTypesList = [];
|
var deviceTypesList = [], virtualDeviceTypesList = [];
|
||||||
for (var i = 0; i < deviceTypes.length; i++) {
|
for (var i = 0; i < deviceTypes.length; i++) {
|
||||||
|
var deviceType = deviceTypes[i];
|
||||||
var deviceTypeLabel = deviceTypes[i].name;
|
var deviceTypeLabel = deviceType;
|
||||||
var configs = utility.getDeviceTypeConfig(deviceTypeLabel);
|
var configs = utility.getDeviceTypeConfig(deviceTypeLabel);
|
||||||
var deviceCategory = "device";
|
var deviceCategory = "device";
|
||||||
if (configs) {
|
if (configs) {
|
||||||
@ -45,22 +45,20 @@ function onRequest(context) {
|
|||||||
}
|
}
|
||||||
if (deviceCategory == 'virtual') {
|
if (deviceCategory == 'virtual') {
|
||||||
virtualDeviceTypesList.push({
|
virtualDeviceTypesList.push({
|
||||||
"hasCustTemplate": false,
|
"hasCustTemplate": false,
|
||||||
"deviceTypeLabel": deviceTypeLabel,
|
"deviceTypeLabel": deviceTypeLabel,
|
||||||
"deviceTypeName": deviceTypes[i].name,
|
"deviceTypeName": deviceType,
|
||||||
"deviceCategory": deviceCategory,
|
"deviceCategory": deviceCategory,
|
||||||
"deviceTypeId": deviceTypes[i].id,
|
"thumb": utility.getDeviceThumb(deviceType)
|
||||||
"thumb": utility.getDeviceThumb(deviceTypes[i].name)
|
});
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
deviceTypesList.push({
|
deviceTypesList.push({
|
||||||
"hasCustTemplate": false,
|
"hasCustTemplate": false,
|
||||||
"deviceTypeLabel": deviceTypeLabel,
|
"deviceTypeLabel": deviceTypeLabel,
|
||||||
"deviceTypeName": deviceTypes[i].name,
|
"deviceTypeName": deviceType,
|
||||||
"deviceCategory": deviceCategory,
|
"deviceCategory": deviceCategory,
|
||||||
"deviceTypeId": deviceTypes[i].id,
|
"thumb": utility.getDeviceThumb(deviceType)
|
||||||
"thumb": utility.getDeviceThumb(deviceTypes[i].name)
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (virtualDeviceTypesList.length > 0) {
|
if (virtualDeviceTypesList.length > 0) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user