mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
This commit is contained in:
parent
84d305dcd4
commit
4df590caa1
@ -173,7 +173,10 @@ public class GroupManagementServiceImpl implements GroupManagementService {
|
|||||||
.manageGroupSharing(groupId, userRoles);
|
.manageGroupSharing(groupId, userRoles);
|
||||||
return Response.status(Response.Status.OK).build();
|
return Response.status(Response.Status.OK).build();
|
||||||
} catch (GroupManagementException e) {
|
} catch (GroupManagementException e) {
|
||||||
String msg = "Error occurred while managing group share.";
|
String msg = "Error occurred while managing group share. ";
|
||||||
|
if (e.getErrorMessage() != null){
|
||||||
|
msg += e.getErrorMessage();
|
||||||
|
}
|
||||||
log.error(msg, e);
|
log.error(msg, e);
|
||||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build();
|
||||||
} catch (RoleDoesNotExistException e) {
|
} catch (RoleDoesNotExistException e) {
|
||||||
|
|||||||
@ -367,39 +367,43 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
|||||||
@Override
|
@Override
|
||||||
public void manageGroupSharing(int groupId, List<String> newRoles)
|
public void manageGroupSharing(int groupId, List<String> newRoles)
|
||||||
throws GroupManagementException, RoleDoesNotExistException {
|
throws GroupManagementException, RoleDoesNotExistException {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
if (newRoles != null) {
|
||||||
UserStoreManager userStoreManager;
|
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
try {
|
UserStoreManager userStoreManager;
|
||||||
userStoreManager =
|
try {
|
||||||
DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(
|
userStoreManager =
|
||||||
tenantId).getUserStoreManager();
|
DeviceManagementDataHolder.getInstance().getRealmService().getTenantUserRealm(
|
||||||
List<String> currentUserRoles = getRoles(groupId);
|
tenantId).getUserStoreManager();
|
||||||
GroupManagementDAOFactory.beginTransaction();
|
List<String> currentUserRoles = getRoles(groupId);
|
||||||
for (String role : newRoles) {
|
GroupManagementDAOFactory.beginTransaction();
|
||||||
if (!userStoreManager.isExistingRole(role)) {
|
for (String role : newRoles) {
|
||||||
throw new RoleDoesNotExistException("Role '" + role + "' does not exists in the user store.");
|
if (!userStoreManager.isExistingRole(role)) {
|
||||||
|
throw new RoleDoesNotExistException("Role '" + role + "' does not exists in the user store.");
|
||||||
|
}
|
||||||
|
// Removing role from current user roles of the group will return true if role exist.
|
||||||
|
// So we don't need to add it to the db again.
|
||||||
|
if (!currentUserRoles.remove(role)) {
|
||||||
|
// If group doesn't have the role, it is adding to the db.
|
||||||
|
groupDAO.addRole(groupId, role, tenantId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Removing role from current user roles of the group will return true if role exist.
|
for (String role : currentUserRoles) {
|
||||||
// So we don't need to add it to the db again.
|
// Removing old roles from db which are not available in the new roles list.
|
||||||
if (!currentUserRoles.remove(role)) {
|
groupDAO.removeRole(groupId, role, tenantId);
|
||||||
// If group doesn't have the role, it is adding to the db.
|
|
||||||
groupDAO.addRole(groupId, role, tenantId);
|
|
||||||
}
|
}
|
||||||
|
GroupManagementDAOFactory.commitTransaction();
|
||||||
|
} catch (GroupManagementDAOException e) {
|
||||||
|
GroupManagementDAOFactory.rollbackTransaction();
|
||||||
|
throw new GroupManagementException(e);
|
||||||
|
} catch (UserStoreException e) {
|
||||||
|
throw new GroupManagementException("User store error in updating sharing roles.", e);
|
||||||
|
} catch (TransactionManagementException e) {
|
||||||
|
throw new GroupManagementException(e);
|
||||||
|
} finally {
|
||||||
|
GroupManagementDAOFactory.closeConnection();
|
||||||
}
|
}
|
||||||
for (String role : currentUserRoles) {
|
} else {
|
||||||
// Removing old roles from db which are not available in the new roles list.
|
throw new GroupManagementException("No roles provided to complete the operation.");
|
||||||
groupDAO.removeRole(groupId, role, tenantId);
|
|
||||||
}
|
|
||||||
GroupManagementDAOFactory.commitTransaction();
|
|
||||||
} catch (GroupManagementDAOException e) {
|
|
||||||
GroupManagementDAOFactory.rollbackTransaction();
|
|
||||||
throw new GroupManagementException(e);
|
|
||||||
} catch (UserStoreException e) {
|
|
||||||
throw new GroupManagementException("User store error in updating sharing roles.", e);
|
|
||||||
} catch (TransactionManagementException e) {
|
|
||||||
throw new GroupManagementException(e);
|
|
||||||
} finally {
|
|
||||||
GroupManagementDAOFactory.closeConnection();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,12 +473,12 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
|||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
GroupManagementDAOFactory.beginTransaction();
|
GroupManagementDAOFactory.beginTransaction();
|
||||||
for (DeviceIdentifier deviceIdentifier : deviceIdentifiers){
|
for (DeviceIdentifier deviceIdentifier : deviceIdentifiers) {
|
||||||
device = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().getDevice(deviceIdentifier);
|
device = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().getDevice(deviceIdentifier);
|
||||||
if (device == null) {
|
if (device == null) {
|
||||||
throw new DeviceNotFoundException("Device not found for id '" + deviceIdentifier.getId() + "'");
|
throw new DeviceNotFoundException("Device not found for id '" + deviceIdentifier.getId() + "'");
|
||||||
}
|
}
|
||||||
if (!this.groupDAO.isDeviceMappedToGroup(groupId, device.getId(), tenantId)){
|
if (!this.groupDAO.isDeviceMappedToGroup(groupId, device.getId(), tenantId)) {
|
||||||
this.groupDAO.addDevice(groupId, device.getId(), tenantId);
|
this.groupDAO.addDevice(groupId, device.getId(), tenantId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -501,7 +505,7 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
|||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
GroupManagementDAOFactory.beginTransaction();
|
GroupManagementDAOFactory.beginTransaction();
|
||||||
for (DeviceIdentifier deviceIdentifier : deviceIdentifiers){
|
for (DeviceIdentifier deviceIdentifier : deviceIdentifiers) {
|
||||||
device = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().getDevice(deviceIdentifier);
|
device = DeviceManagementDataHolder.getInstance().getDeviceManagementProvider().getDevice(deviceIdentifier);
|
||||||
if (device == null) {
|
if (device == null) {
|
||||||
throw new DeviceNotFoundException("Device not found for id '" + deviceIdentifier.getId() + "'");
|
throw new DeviceNotFoundException("Device not found for id '" + deviceIdentifier.getId() + "'");
|
||||||
@ -554,7 +558,7 @@ public class GroupManagementProviderServiceImpl implements GroupManagementProvid
|
|||||||
Device device = managementProviderService.getDevice(deviceIdentifier);
|
Device device = managementProviderService.getDevice(deviceIdentifier);
|
||||||
GroupManagementDAOFactory.openConnection();
|
GroupManagementDAOFactory.openConnection();
|
||||||
return groupDAO.getGroups(device.getId(),
|
return groupDAO.getGroups(device.getId(),
|
||||||
PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
|
PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
throw new GroupManagementException("Error occurred while retrieving the device details.", e);
|
throw new GroupManagementException("Error occurred while retrieving the device details.", e);
|
||||||
} catch (GroupManagementDAOException e) {
|
} catch (GroupManagementDAOException e) {
|
||||||
|
|||||||
@ -381,7 +381,7 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-5 col-md-6 col-centered">
|
<div class="col-lg-5 col-md-6 col-centered">
|
||||||
<h3>Unexpected error occurred!</h3>
|
<h3 id="unexp-error-msg">Unexpected error occurred!</h3>
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<a href="#" id="group-unexpected-error-link" class="btn-operations">
|
<a href="#" id="group-unexpected-error-link" class="btn-operations">
|
||||||
|
|||||||
@ -112,7 +112,7 @@ function toTitleCase(str) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function htmlspecialchars(text){
|
function htmlspecialchars(text) {
|
||||||
return jQuery('<div/>').text(text).html();
|
return jQuery('<div/>').text(text).html();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,11 +138,11 @@ function loadGroups() {
|
|||||||
var objects = [];
|
var objects = [];
|
||||||
$(data.deviceGroups).each(function (index) {
|
$(data.deviceGroups).each(function (index) {
|
||||||
objects.push({
|
objects.push({
|
||||||
groupId: htmlspecialchars(data.deviceGroups[index].id),
|
groupId: htmlspecialchars(data.deviceGroups[index].id),
|
||||||
name: htmlspecialchars(data.deviceGroups[index].name),
|
name: htmlspecialchars(data.deviceGroups[index].name),
|
||||||
description: htmlspecialchars(data.deviceGroups[index].description),
|
description: htmlspecialchars(data.deviceGroups[index].description),
|
||||||
owner: htmlspecialchars(data.deviceGroups[index].owner)
|
owner: htmlspecialchars(data.deviceGroups[index].owner)
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
var json = {
|
var json = {
|
||||||
"recordsTotal": data.count,
|
"recordsTotal": data.count,
|
||||||
@ -159,7 +159,7 @@ function loadGroups() {
|
|||||||
class: 'remove-padding icon-only content-fill viewEnabledIcon',
|
class: 'remove-padding icon-only content-fill viewEnabledIcon',
|
||||||
render: function (data, type, row, meta) {
|
render: function (data, type, row, meta) {
|
||||||
return '<div class="thumbnail icon"><img class="square-element text fw " ' +
|
return '<div class="thumbnail icon"><img class="square-element text fw " ' +
|
||||||
'src="public/cdmf.page.groups/images/group-icon.png"/></div>';
|
'src="public/cdmf.page.groups/images/group-icon.png"/></div>';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -185,38 +185,38 @@ function loadGroups() {
|
|||||||
var html = '';
|
var html = '';
|
||||||
if ($.hasPermission("VIEW_GROUP_DEVICES")) {
|
if ($.hasPermission("VIEW_GROUP_DEVICES")) {
|
||||||
/*html += '<a href="group/' + row.groupId
|
/*html += '<a href="group/' + row.groupId
|
||||||
+ '/analytics" data-click-event="remove-form" class="btn padding-reduce-on-grid-view">' +
|
+ '/analytics" data-click-event="remove-form" class="btn padding-reduce-on-grid-view">' +
|
||||||
'<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>'
|
'<span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-statistics fw-stack-1x"></i></span>'
|
||||||
+
|
+
|
||||||
'<span class="hidden-xs hidden-on-grid-view">Analytics</span></a>';*/
|
'<span class="hidden-xs hidden-on-grid-view">Analytics</span></a>';*/
|
||||||
}
|
}
|
||||||
if (row.owner != "wso2.system.user") {
|
if (row.owner != "wso2.system.user") {
|
||||||
if ($.hasPermission("SHARE_GROUP")) {
|
if ($.hasPermission("SHARE_GROUP")) {
|
||||||
html +=
|
html +=
|
||||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view share-group-link" data-group-id="'
|
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view share-group-link" data-group-id="'
|
||||||
+ row.groupId + '" ' +
|
+ row.groupId + '" ' +
|
||||||
'data-group-owner="' + row.owner
|
'data-group-owner="' + row.owner
|
||||||
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Share"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-share fw-stack-1x"></i></span>'
|
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Share"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-share fw-stack-1x"></i></span>'
|
||||||
+
|
+
|
||||||
'<span class="hidden-xs hidden-on-grid-view">Share</span></a>';
|
'<span class="hidden-xs hidden-on-grid-view">Share</span></a>';
|
||||||
}
|
}
|
||||||
if ($.hasPermission("UPDATE_GROUP")) {
|
if ($.hasPermission("UPDATE_GROUP")) {
|
||||||
html +=
|
html +=
|
||||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-group-link" data-group-name="'
|
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view edit-group-link" data-group-name="'
|
||||||
+ row.name + '" ' +
|
+ row.name + '" ' +
|
||||||
'data-group-owner="' + row.owner + '" data-group-description="' + row.description
|
'data-group-owner="' + row.owner + '" data-group-description="' + row.description
|
||||||
+ '" data-group-id="' + row.groupId
|
+ '" data-group-id="' + row.groupId
|
||||||
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Edit"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
|
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Edit"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i>' +
|
||||||
'<i class="fw fw-edit fw-stack-1x"></i></span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
|
'<i class="fw fw-edit fw-stack-1x"></i></span><span class="hidden-xs hidden-on-grid-view">Edit</span></a>';
|
||||||
}
|
}
|
||||||
if ($.hasPermission("REMOVE_GROUP")) {
|
if ($.hasPermission("REMOVE_GROUP")) {
|
||||||
html +=
|
html +=
|
||||||
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-group-link" data-group-id="'
|
'<a href="#" data-click-event="remove-form" class="btn padding-reduce-on-grid-view remove-group-link" data-group-id="'
|
||||||
+ row.groupId + '" ' +
|
+ row.groupId + '" ' +
|
||||||
'data-group-owner="' + row.owner
|
'data-group-owner="' + row.owner
|
||||||
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Delete"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-delete fw-stack-1x"></i>'
|
+ '" data-placement="top" data-toggle="tooltip" data-original-title="Delete"><span class="fw-stack"><i class="fw fw-circle-outline fw-stack-2x"></i><i class="fw fw-delete fw-stack-1x"></i>'
|
||||||
+
|
+
|
||||||
'</span><span class="hidden-xs hidden-on-grid-view">Delete</span></a>';
|
'</span><span class="hidden-xs hidden-on-grid-view">Delete</span></a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return html;
|
return html;
|
||||||
@ -251,21 +251,21 @@ function loadGroups() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
$('#group-grid').datatables_extended_serverside_paging(
|
$('#group-grid').datatables_extended_serverside_paging(
|
||||||
null,
|
null,
|
||||||
serviceURL,
|
serviceURL,
|
||||||
dataFilter,
|
dataFilter,
|
||||||
columns,
|
columns,
|
||||||
fnCreatedRow,
|
fnCreatedRow,
|
||||||
function (oSettings) {
|
function (oSettings) {
|
||||||
$(".icon .text").res_text(0.2);
|
$(".icon .text").res_text(0.2);
|
||||||
attachEvents();
|
attachEvents();
|
||||||
var thisTable = $(this).closest('.dataTables_wrapper').find('.dataTable').dataTable();
|
var thisTable = $(this).closest('.dataTables_wrapper').find('.dataTable').dataTable();
|
||||||
thisTable.removeClass("table-selectable");
|
thisTable.removeClass("table-selectable");
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"placeholder": "Search By Group Name",
|
"placeholder": "Search By Group Name",
|
||||||
"searchKey": "name"
|
"searchKey": "name"
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
$(groupCheckbox).click(function () {
|
$(groupCheckbox).click(function () {
|
||||||
addGroupSelectedClass(this);
|
addGroupSelectedClass(this);
|
||||||
@ -442,7 +442,7 @@ function attachEvents() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
invokerUtil.delete("/api/device-mgt/v1.0/groups/id/" + groupId,
|
invokerUtil.delete("/api/device-mgt/v1.0/groups/id/" + groupId,
|
||||||
successCallback, function (message) {
|
successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -487,7 +487,7 @@ function attachEvents() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
invokerUtil.put("/api/device-mgt/v1.0/groups/id/" + groupId, group,
|
invokerUtil.put("/api/device-mgt/v1.0/groups/id/" + groupId, group,
|
||||||
successCallback, function (message) {
|
successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -517,7 +517,7 @@ function markAlreadySavedUsersRoles(groupId) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
invokerUtil.get("/api/device-mgt/v1.0/groups/id/" + groupId + "/roles",
|
invokerUtil.get("/api/device-mgt/v1.0/groups/id/" + groupId + "/roles",
|
||||||
successCallback, function (message) {
|
successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -535,8 +535,8 @@ function listAllRoles(groupId) {
|
|||||||
$("#rolesListing").html(html);
|
$("#rolesListing").html(html);
|
||||||
markAlreadySavedUsersRoles(groupId);
|
markAlreadySavedUsersRoles(groupId);
|
||||||
$("select.select2[multiple=multiple]").select2({
|
$("select.select2[multiple=multiple]").select2({
|
||||||
tags: false
|
tags: false
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$("#rolesListing").html("No roles available");
|
$("#rolesListing").html("No roles available");
|
||||||
}
|
}
|
||||||
@ -546,7 +546,7 @@ function listAllRoles(groupId) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
invokerUtil.get("/api/device-mgt/v1.0/roles?offset=0&limit=100&user-store=all",
|
invokerUtil.get("/api/device-mgt/v1.0/roles?offset=0&limit=100&user-store=all",
|
||||||
successCallback, function (message) {
|
successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -589,7 +589,7 @@ function updateGroupShare(groupId, roles) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
invokerUtil.post("/api/device-mgt/v1.0/groups/id/" + groupId + "/share",
|
invokerUtil.post("/api/device-mgt/v1.0/groups/id/" + groupId + "/share",
|
||||||
roles, successCallback, function (message) {
|
roles, successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -600,7 +600,7 @@ function createNewCombinedRole(roleName, roleList) {
|
|||||||
showPopup();
|
showPopup();
|
||||||
};
|
};
|
||||||
invokerUtil.post("/api/device-mgt/v1.0/roles/create-combined-role/" + roleName, roleList,
|
invokerUtil.post("/api/device-mgt/v1.0/roles/create-combined-role/" + roleName, roleList,
|
||||||
successCallback, function (message) {
|
successCallback, function (message) {
|
||||||
displayErrors(message);
|
displayErrors(message);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -633,6 +633,9 @@ function displayErrors(jqXHR) {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$(modalPopupContent).html($('#group-unexpected-error-content').html());
|
$(modalPopupContent).html($('#group-unexpected-error-content').html());
|
||||||
|
if (jqXHR.responseText) {
|
||||||
|
$('#unexp-error-msg').html(jqXHR.responseText.replace(new RegExp("\"", 'g'), ""));
|
||||||
|
}
|
||||||
$("a#group-unexpected-error-link").click(function () {
|
$("a#group-unexpected-error-link").click(function () {
|
||||||
hidePopup();
|
hidePopup();
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user