Adding permissions to operation-bar UI

merge-requests/1/head
dilanua 8 years ago
parent c2c71df610
commit 4799fcca5f

@ -16,12 +16,13 @@
under the License.
}}
{{#zone "content"}}
<div id = "operations-mod">
<div id = "operations-mod" data-permissions="{{permissions}}">
{{unit "mdm.unit.device.operation-mod"}}
</div>
{{/zone}}
{{#zone "bottomJs"}}
<!--suppress HtmlUnknownTarget -->
<script id="operations-bar" src="{{@unit.publicUri}}/templates/operations.hbs"
type="text/x-handlebars-template"></script>
{{js "js/operation-bar.js"}}

@ -0,0 +1,73 @@
/*
* Copyright (c) 2016, 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.
*/
function onRequest(context) {
var log = new Log("mdm.unit.device.operation-bar");
var userModule = require("/app/modules/business-controllers/user.js")["userModule"];
var deviceType = context.uriParams.deviceType;
var viewModel = {};
var permissions = [];
// permission checks
if (deviceType == "android") {
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/ring")) {
permissions.push("DEVICE_RING");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/lock-devices")) {
permissions.push("DEVICE_LOCK");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/unlock-devices")) {
permissions.push("DEVICE_UNLOCK");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/location")) {
permissions.push("DEVICE_LOCATION");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/clear-password")) {
permissions.push("CLEAR_PASSWORD");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/reboot")) {
permissions.push("DEVICE_REBOOT");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/upgrade-firmware")) {
permissions.push("UPGRADE_FIRMWARE");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/mute")) {
permissions.push("DEVICE_MUTE");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/send-notification")) {
permissions.push("NOTIFICATION");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/change-lock-code")) {
permissions.push("CHANGE_LOCK_CODE");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/enterprise-wipe")) {
permissions.push("ENTERPRISE_WIPE");
}
if (userModule.isAuthorized("/permission/admin/device-mgt/devices/owning/operations/android/wipe")) {
permissions.push("WIPE_DATA");
}
} else if (deviceType == "ios") {
} else if (deviceType == "windows") {
}
viewModel["permissions"] = stringify(permissions);
return viewModel;
}

@ -21,8 +21,8 @@
*/
var operations = '.wr-operations',
modalPopup = '.modal',
modalPopupContent = modalPopup + ' .modal-content',
modalPopup = '.wr-modalpopup',
modalPopupContent = modalPopup + ' .modalpopup-content',
navHeight = $('#nav').height(),
headerHeight = $('header').height(),
offset = (headerHeight + navHeight),
@ -108,8 +108,21 @@ function loadOperationBar(deviceType) {
//var serviceURL = "/mdm-admin/features/" + platformType;
var serviceURL = "/api/device-mgt/v1.0/devices/" + platformType + "/*/features";
var successCallback = function (data) {
var permittedOpps = [];
var i;
var permissionList = $("#operations-mod").data("permissions");
var totalFeatures = JSON.parse(data);
for (i = 0; i < permissionList.length; i++) {
var j;
for (j = 0; j < totalFeatures.length; j++) {
if (permissionList[i] == totalFeatures[j]["code"]) {
permittedOpps.push(totalFeatures[j]);
}
}
}
var viewModel = {};
data = JSON.parse(data).filter(function (current) {
permittedOpps = permittedOpps.filter(function (current) {
var iconName;
switch (deviceType) {
case platformTypeConstants.ANDROID:
@ -129,7 +142,8 @@ function loadOperationBar(deviceType) {
return current;
}
});
viewModel.features = data;
viewModel.features = permittedOpps;
var content = template(viewModel);
$(".wr-operations").html(content);
};

Loading…
Cancel
Save