|
|
|
@@ -25,6 +25,7 @@ import java.util.Map.Entry;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
|
|
import org.activiti.engine.ProcessEngine;
|
|
|
|
|
import org.activiti.engine.repository.ModelQuery;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
@@ -206,31 +207,42 @@ public class ModelShareWorker implements Bootstrappable {
|
|
|
|
|
map.put(key, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void share() {
|
|
|
|
|
this.logger.trace("Discovering models ...");
|
|
|
|
|
public void shareAllModels() {
|
|
|
|
|
if (this.tenantId != null)
|
|
|
|
|
this.shareAllModels(this.tenantId);
|
|
|
|
|
this.shareAllModels(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void shareAllModels(Long tenantId) {
|
|
|
|
|
this.logger.trace("Discovering models in tenant {} ...", this.tenantId);
|
|
|
|
|
|
|
|
|
|
long modelCount = 0L;
|
|
|
|
|
int page = 1;
|
|
|
|
|
int perPage = this.modelChunkSize;
|
|
|
|
|
|
|
|
|
|
List<org.activiti.engine.repository.Model> models = this.services.getRepositoryService().createModelQuery().listPage((page-1)*perPage, perPage);
|
|
|
|
|
ModelQuery query = this.services.getRepositoryService().createModelQuery().latestVersion();
|
|
|
|
|
if (tenantId != null)
|
|
|
|
|
query.modelTenantId(String.valueOf(tenantId));
|
|
|
|
|
else query.modelWithoutTenantId();
|
|
|
|
|
|
|
|
|
|
List<org.activiti.engine.repository.Model> models = query.listPage((page-1)*perPage, perPage);
|
|
|
|
|
while (!models.isEmpty()) {
|
|
|
|
|
this.logger.trace("Fetched page #{} of {} models", page, models.size());
|
|
|
|
|
this.logger.trace("Fetched page #{} of {} models in tenant {}", page, models.size(), this.tenantId);
|
|
|
|
|
|
|
|
|
|
for (org.activiti.engine.repository.Model model : models) {
|
|
|
|
|
this.logger.debug("Discovered model: {}: {}: {}", model.getCategory(), model.getId(), model.getName());
|
|
|
|
|
this.share(model);
|
|
|
|
|
this.shareModel(model);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
modelCount += models.size();
|
|
|
|
|
page++;
|
|
|
|
|
models = this.services.getRepositoryService().createModelQuery().listPage((page-1)*perPage, perPage);
|
|
|
|
|
models = query.listPage((page-1)*perPage, perPage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.logger.trace("Discovered {} models", modelCount);
|
|
|
|
|
this.logger.trace("Discovered {} models in tenant {}", modelCount, this.tenantId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void share(org.activiti.engine.repository.Model orgModel) {
|
|
|
|
|
public void shareModel(org.activiti.engine.repository.Model orgModel) {
|
|
|
|
|
Model model = (Model) this.modelService.getModel(Long.valueOf(orgModel.getId()));
|
|
|
|
|
Map<HashableGroup, SharePermission> shares = this.fetchCurrentModelShares(model);
|
|
|
|
|
|
|
|
|
|