data-resource-management-service/drms-graph-impl/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java [727:759]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                   StreamObserver<OperationStatusResponse> responseObserver) {
        try {
            AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
            GenericResource resource = request.getParentResource();
            List<GenericResource> childResources = request.getChildResourcesList();

            List<GenericResource> allResources = new ArrayList<>();
            allResources.add(resource);
            allResources.addAll(childResources);

            //TODO: can create raise conditions please move to DB level logic
            allResources.forEach(res -> {
                try {
                    if (!hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId())) {
                        String msg = " Don't have access to change memberships";
                        responseObserver.onError(Status.PERMISSION_DENIED.withDescription(msg).asRuntimeException());
                        return;
                    }
                } catch (Exception exception) {
                    logger.error(" Error occurred while checking for permissions: Message {} "
                            + exception.getMessage(), exception);
                    String msg = " Error occurred while checking for permissions ";
                    responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
                    return;
                }
            });


            childResources.forEach(childResource -> {
                Map<String, Object> userProps = new HashMap<>();
                userProps.put("tenantId", callUser.getTenantId());
                userProps.put("entityId", resource.getResourceId());
                userProps.put("childEntityId", childResource.getResourceId());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



data-resource-management-service/drms-graph-impl/drms-api/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java [778:811]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                      StreamObserver<OperationStatusResponse> responseObserver) {
        try {

            AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
            GenericResource resource = request.getParentResource();
            List<GenericResource> childResources = request.getChildResourcesList();

            List<GenericResource> allResources = new ArrayList<>();
            allResources.add(resource);
            allResources.addAll(childResources);

            //TODO: can create raise conditions please move to DB level logic
            allResources.forEach(res -> {
                try {
                    if (!hasAccessForResource(callUser.getUsername(), callUser.getTenantId(), res.getResourceId())) {
                        String msg = " Don't have access to change memberships";
                        responseObserver.onError(Status.PERMISSION_DENIED.withDescription(msg).asRuntimeException());
                        return;
                    }
                } catch (Exception exception) {
                    logger.error(" Error occurred while checking for permissions: Message {} "
                            + exception.getMessage(), exception);
                    String msg = " Error occurred while checking for permissions ";
                    responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
                    return;
                }
            });


            childResources.forEach(childResource -> {
                Map<String, Object> userProps = new HashMap<>();
                userProps.put("tenantId", callUser.getTenantId());
                userProps.put("entityId", resource.getResourceId());
                userProps.put("childEntityId", childResource.getResourceId());
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



