diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java index d0619e6520..e69de29bb2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/GroupManagementServiceImpl.java @@ -1,306 +0,0 @@ -/* - * 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. - * - */ - -package org.wso2.carbon.device.mgt.jaxrs.service.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.wso2.carbon.CarbonConstants; -import org.wso2.carbon.context.CarbonContext; -import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.common.Device; -import org.wso2.carbon.device.mgt.common.DeviceIdentifier; -import org.wso2.carbon.device.mgt.common.DeviceNotFoundException; -import org.wso2.carbon.device.mgt.common.GroupPaginationRequest; -import org.wso2.carbon.device.mgt.common.PaginationResult; -import org.wso2.carbon.device.mgt.common.group.mgt.*; -import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; -import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceGroupList; -import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceList; -import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceToGroupsAssignment; -import org.wso2.carbon.device.mgt.jaxrs.beans.RoleList; -import org.wso2.carbon.device.mgt.jaxrs.service.api.GroupManagementService; -import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil; -import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; - -import javax.ws.rs.core.Response; -import java.util.ArrayList; -import java.util.List; - -public class GroupManagementServiceImpl implements GroupManagementService { - - private static final Log log = LogFactory.getLog(GroupManagementServiceImpl.class); - - private static final String DEFAULT_ADMIN_ROLE = "admin"; - private static final String[] DEFAULT_ADMIN_PERMISSIONS = {"/permission/device-mgt/admin/groups", - "/permission/device-mgt/user/groups"}; - private static final String EMPTY_RESULT = "EMPTY"; - - @Override - public Response getGroups(String name, String owner, int offset, int limit) { - try { - RequestValidationUtil.validatePaginationParameters(offset, limit); - String currentUser = CarbonContext.getThreadLocalCarbonContext().getUsername(); - GroupPaginationRequest request = new GroupPaginationRequest(offset, limit); - request.setGroupName(name); - request.setOwner(owner); - PaginationResult deviceGroupsResult = DeviceMgtAPIUtils.getGroupManagementProviderService() - .getGroups(currentUser, request); - DeviceGroupList deviceGroupList = new DeviceGroupList(); - if (deviceGroupsResult.getData() != null && deviceGroupsResult.getRecordsTotal() > 0) { - deviceGroupList.setList(deviceGroupsResult.getData()); - deviceGroupList.setCount(deviceGroupsResult.getRecordsTotal()); - } else { - deviceGroupList.setList(new ArrayList<>()); - deviceGroupList.setCount(0); - } - return Response.status(Response.Status.OK).entity(deviceGroupList).build(); - } catch (GroupManagementException e) { - String error = "Error occurred while getting the groups."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build(); - } - } - - @Override - public Response getGroupCount() { - try { - String currentUser = CarbonContext.getThreadLocalCarbonContext().getUsername(); - int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroupCount(currentUser); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while retrieving group count."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @Override - public Response createGroup(DeviceGroup group) { - String owner = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername(); - if (group == null) { - return Response.status(Response.Status.BAD_REQUEST).build(); - } - group.setOwner(owner); - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().createGroup(group, DEFAULT_ADMIN_ROLE, DEFAULT_ADMIN_PERMISSIONS); - return Response.status(Response.Status.CREATED).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while adding new group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (GroupAlreadyExistException e) { - String msg = "Group already exists with name '" + group.getName() + "'."; - log.warn(msg); - return Response.status(Response.Status.CONFLICT).entity(msg).build(); - } - } - - @Override - public Response getGroup(int groupId) { - try { - GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService(); - DeviceGroup deviceGroup = service.getGroup(groupId); - if (deviceGroup != null) { - return Response.status(Response.Status.OK).entity(deviceGroup).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).build(); - } - } catch (GroupManagementException e) { - String error = "Error occurred while getting the group."; - log.error(error, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error).build(); - } - } - - @Override - public Response updateGroup(int groupId, DeviceGroup deviceGroup) { - if (deviceGroup == null) { - return Response.status(Response.Status.BAD_REQUEST).build(); - } - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().updateGroup(deviceGroup, groupId); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while adding new group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (GroupNotExistException e) { - String msg = "There is another group already exists with name '" + deviceGroup.getName() + "'."; - log.warn(msg); - return Response.status(Response.Status.CONFLICT).entity(msg).build(); - } - } - - @Override - public Response deleteGroup(int groupId) { - try { - if (DeviceMgtAPIUtils.getGroupManagementProviderService().deleteGroup(groupId)) { - return Response.status(Response.Status.OK).build(); - } else { - return Response.status(Response.Status.NOT_FOUND).entity("Group not found.").build(); - } - } catch (GroupManagementException e) { - String msg = "Error occurred while deleting the group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @Override - public Response manageGroupSharing(int groupId, List userRoles) { - try { - DeviceMgtAPIUtils.getGroupManagementProviderService() - .manageGroupSharing(groupId, userRoles); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while managing group share. "; - if (e.getErrorMessage() != null){ - msg += e.getErrorMessage(); - } - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (RoleDoesNotExistException e) { - return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Override - public Response getRolesOfGroup(int groupId) { - try { - List groupRoles = DeviceMgtAPIUtils.getGroupManagementProviderService().getRoles(groupId); - RoleList deviceGroupRolesList = new RoleList(); - if(groupRoles != null) { - deviceGroupRolesList.setList(groupRoles); - deviceGroupRolesList.setCount(groupRoles.size()); - } else { - deviceGroupRolesList.setList(new ArrayList()); - deviceGroupRolesList.setCount(0); - } - return Response.status(Response.Status.OK).entity(deviceGroupRolesList).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while getting roles of the group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @Override - public Response getDevicesOfGroup(int groupId, int offset, int limit) { - try { - GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService(); - List deviceList = service.getDevices(groupId, offset, limit); - int deviceCount = service.getDeviceCount(groupId); - DeviceList deviceListWrapper = new DeviceList(); - if (deviceList != null) { - deviceListWrapper.setList(deviceList); - } else { - deviceListWrapper.setList(new ArrayList()); - } - deviceListWrapper.setCount(deviceCount); - return Response.status(Response.Status.OK).entity(deviceListWrapper).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while getting devices the group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @Override - public Response getDeviceCountOfGroup(int groupId) { - try { - int count = DeviceMgtAPIUtils.getGroupManagementProviderService().getDeviceCount(groupId); - return Response.status(Response.Status.OK).entity(count).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while getting device count of the group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - - @Override - public Response addDevicesToGroup(int groupId, List deviceIdentifiers) { - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().addDevices(groupId, deviceIdentifiers); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while adding devices to group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (DeviceNotFoundException e) { - return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Override - public Response removeDevicesFromGroup(int groupId, List deviceIdentifiers) { - try { - DeviceMgtAPIUtils.getGroupManagementProviderService().removeDevice(groupId, deviceIdentifiers); - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while removing devices from group."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (DeviceNotFoundException e) { - return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Override - public Response updateDeviceAssigningToGroups(DeviceToGroupsAssignment deviceToGroupsAssignment) { - try { - List deviceIdentifiers = new ArrayList<>(); - deviceIdentifiers.add(deviceToGroupsAssignment.getDeviceIdentifier()); - GroupManagementProviderService service = DeviceMgtAPIUtils.getGroupManagementProviderService(); - List deviceGroups = service.getGroups(deviceToGroupsAssignment.getDeviceIdentifier()); - for (DeviceGroup group : deviceGroups) { - Integer groupId = group.getGroupId(); - if (deviceToGroupsAssignment.getDeviceGroupIds().contains(groupId)) { - deviceToGroupsAssignment.getDeviceGroupIds().remove(groupId); - } else if (!CarbonConstants.REGISTRY_SYSTEM_USERNAME.equals(group.getOwner())) { - DeviceMgtAPIUtils.getGroupManagementProviderService().removeDevice(groupId, deviceIdentifiers); - } - } - for (int groupId : deviceToGroupsAssignment.getDeviceGroupIds()) { - DeviceMgtAPIUtils.getGroupManagementProviderService().addDevices(groupId, deviceIdentifiers); - } - return Response.status(Response.Status.OK).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while assigning device to groups."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } catch (DeviceNotFoundException e) { - return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Override - public Response getGroups(String deviceId, String deviceType) { - try { - DeviceIdentifier deviceIdentifier = new DeviceIdentifier(deviceId, deviceType); - List deviceGroups = DeviceMgtAPIUtils.getGroupManagementProviderService().getGroups(deviceIdentifier); - return Response.status(Response.Status.OK).entity(deviceGroups).build(); - } catch (GroupManagementException e) { - String msg = "Error occurred while getting groups of device."; - log.error(msg, e); - return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); - } - } - -} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java index 8222210cad..0668b30c4e 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.api/src/main/java/org/wso2/carbon/device/mgt/jaxrs/service/impl/admin/GroupManagementAdminServiceImpl.java @@ -21,11 +21,8 @@ package org.wso2.carbon.device.mgt.jaxrs.service.impl.admin; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.device.mgt.common.GroupPaginationRequest; -import org.wso2.carbon.device.mgt.common.PaginationRequest; import org.wso2.carbon.device.mgt.common.PaginationResult; -import org.wso2.carbon.device.mgt.common.group.mgt.DeviceGroup; import org.wso2.carbon.device.mgt.common.group.mgt.GroupManagementException; -import org.wso2.carbon.device.mgt.core.service.GroupManagementProviderService; import org.wso2.carbon.device.mgt.jaxrs.beans.DeviceGroupList; import org.wso2.carbon.device.mgt.jaxrs.service.api.admin.GroupManagementAdminService; import org.wso2.carbon.device.mgt.jaxrs.service.impl.util.RequestValidationUtil; @@ -33,7 +30,6 @@ import org.wso2.carbon.device.mgt.jaxrs.util.DeviceMgtAPIUtils; import javax.ws.rs.core.Response; import java.util.ArrayList; -import java.util.List; public class GroupManagementAdminServiceImpl implements GroupManagementAdminService {