diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompleted.java index a135dc110a3fb513180c6e94f6313f1665f61248..c283a5034bdef996fd26f7f685285c6215ff6245 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompleted.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompleted.java @@ -73,7 +73,7 @@ class ActionBatchDownloadWithWorkOrWorkCompleted extends BaseAction { List units = business.organization().unit().listWithPerson(effectivePerson); List readableAttachmentList = new ArrayList<>(); for (Attachment attachment : attachmentList) { - if (this.read(attachment, effectivePerson, identities, units)) { + if (this.read(attachment, effectivePerson, identities, units, business)) { readableAttachmentList.add(attachment); } } diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompletedStream.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompletedStream.java index b45c892d095e55a1247d4280326284e5f827c9c9..1e37d3931066634a2b7f86b4bc49a64d90f8e466 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompletedStream.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionBatchDownloadWithWorkOrWorkCompletedStream.java @@ -73,7 +73,7 @@ class ActionBatchDownloadWithWorkOrWorkCompletedStream extends BaseAction { List units = business.organization().unit().listWithPerson(effectivePerson); List readableAttachmentList = new ArrayList<>(); for (Attachment attachment : attachmentList) { - if (this.read(attachment, effectivePerson, identities, units)) { + if (this.read(attachment, effectivePerson, identities, units, business)) { readableAttachmentList.add(attachment); } } diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeOrderNumber.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeOrderNumber.java index 9d0bd69b9769f55147a7b168b742439f8a72472d..65a7271b640e8d8863827219535793dff566a9ac 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeOrderNumber.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeOrderNumber.java @@ -19,6 +19,8 @@ import com.x.processplatform.core.entity.content.Work; import com.x.processplatform.core.entity.element.Application; import com.x.processplatform.core.entity.element.Process; +import java.util.List; + class ActionChangeOrderNumber extends BaseAction { private static Logger logger = LoggerFactory.getLogger(ActionChangeOrderNumber.class); @@ -41,9 +43,10 @@ class ActionChangeOrderNumber extends BaseAction { if (BooleanUtils.isNotTrue(control.getAllowSave())) { throw new ExceptionAccessDenied(effectivePerson, work); } - Application application = business.application().pick(work.getApplication()); - Process process = business.process().pick(work.getProcess()); - if (!business.controllerable(effectivePerson, application, process, attachment)) { + List identities = business.organization().identity().listWithPerson(effectivePerson); + List units = business.organization().unit().listWithPerson(effectivePerson); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + if(!canEdit){ throw new ExceptionAccessDenied(effectivePerson, attachment); } emc.beginTransaction(Attachment.class); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeSite.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeSite.java index 2ad9dad757e5a4572055cf2d932bce84031f8794..3734ddfda73a08eea59f523ed33f9568473d7a7b 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeSite.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionChangeSite.java @@ -14,6 +14,8 @@ import com.x.processplatform.assemble.surface.WorkControl; import com.x.processplatform.core.entity.content.Attachment; import com.x.processplatform.core.entity.content.Work; +import java.util.List; + class ActionChangeSite extends BaseAction { ActionResult execute(EffectivePerson effectivePerson, String id, String workId, String site) throws Exception { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { @@ -34,6 +36,12 @@ class ActionChangeSite extends BaseAction { if (BooleanUtils.isNotTrue(control.getAllowSave())) { throw new ExceptionAccessDenied(effectivePerson, work); } + List identities = business.organization().identity().listWithPerson(effectivePerson); + List units = business.organization().unit().listWithPerson(effectivePerson); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + if(!canEdit){ + throw new ExceptionAccessDenied(effectivePerson, attachment); + } emc.beginTransaction(Attachment.class); attachment.setSite(site); emc.commit(); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionEdit.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionEdit.java index 0f08b1c642aad03c0d4901d3e7c9a492af26b407..f819468c2471dbece29f8b003a3c6f244f67a173 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionEdit.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionEdit.java @@ -56,7 +56,7 @@ class ActionEdit extends BaseAction { List identities = business.organization().identity().listWithPerson(effectivePerson); List units = business.organization().unit().listWithPerson(effectivePerson); - boolean canControl = this.control(attachment, effectivePerson, identities, units); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); if(!canControl){ throw new ExceptionAccessDenied(effectivePerson, attachment); } diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWork.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWork.java index 046d0b0a3ca90d2cb79f2edcc64ddca5cccdf7ff..c7b3668fddef66844b3d8801f9f7820a3e02c5af 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWork.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWork.java @@ -14,7 +14,6 @@ import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.tools.ListTools; import com.x.processplatform.assemble.surface.Business; -import com.x.processplatform.assemble.surface.jaxrs.attachment.ActionListWithWorkOrWorkCompleted.Wo; import com.x.processplatform.core.entity.content.Attachment; import com.x.processplatform.core.entity.content.Work; @@ -43,9 +42,9 @@ class ActionGetWithWork extends BaseAction { List units = business.organization().unit().listWithPerson(effectivePerson); - boolean canControl = this.control(wo, effectivePerson, identities, units); - boolean canEdit = (this.edit(wo, effectivePerson, identities, units) || canControl); - boolean canRead = (this.read(attachment, effectivePerson, identities, units) || canEdit); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + boolean canRead = this.read(attachment, effectivePerson, identities, units, business); if (canRead) { wo.getControl().setAllowRead(true); wo.getControl().setAllowEdit(canEdit); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkCompleted.java index f6b4cd1b2eecfcfe7d549a2f482337b3596dbba9..1d78d844957025eaff16a235117977b376ad0bcf 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkCompleted.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkCompleted.java @@ -42,9 +42,9 @@ class ActionGetWithWorkCompleted extends BaseAction { List units = business.organization().unit().listWithPerson(effectivePerson); - boolean canControl = this.control(wo, effectivePerson, identities, units); - boolean canEdit = (this.edit(wo, effectivePerson, identities, units) || canControl); - boolean canRead = (this.read(attachment, effectivePerson, identities, units) || canEdit); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + boolean canRead = this.read(attachment, effectivePerson, identities, units, business); if (canRead) { wo.getControl().setAllowRead(true); wo.getControl().setAllowEdit(canEdit); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkOrWorkCompleted.java index 2c1235499a12f63a533e8293b9ed054f71602dec..63e5d9861dc157bdf299c15301e95a10cb5f1021 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkOrWorkCompleted.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionGetWithWorkOrWorkCompleted.java @@ -44,9 +44,9 @@ class ActionGetWithWorkOrWorkCompleted extends BaseAction { List identities = business.organization().identity().listWithPerson(effectivePerson); List units = business.organization().unit().listWithPerson(effectivePerson); - boolean canControl = this.control(wo, effectivePerson, identities, units); - boolean canEdit = (this.edit(wo, effectivePerson, identities, units) || canControl); - boolean canRead = (this.read(attachment, effectivePerson, identities, units) || canEdit); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + boolean canRead = this.read(attachment, effectivePerson, identities, units, business); if (canRead) { wo.getControl().setAllowRead(true); wo.getControl().setAllowEdit(canEdit); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java index 9d89ecb1d436c9aac16dd667ede12f99acf8f718..12ac82803b71a43b2e27a98f81dd4de20644723d 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionListWithWorkOrWorkCompleted.java @@ -46,9 +46,9 @@ class ActionListWithWorkOrWorkCompleted extends BaseAction { for (Attachment attachment : this.list(business, job)) { Wo wo = Wo.copier.copy(attachment); - boolean canControl = this.control(wo, effectivePerson, identities, units); - boolean canEdit = (this.edit(wo, effectivePerson, identities, units) || canControl); - boolean canRead = (this.read(attachment, effectivePerson, identities, units) || canEdit); + boolean canControl = this.control(attachment, effectivePerson, identities, units, business); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); + boolean canRead = this.read(attachment, effectivePerson, identities, units, business); if (canRead) { wo.getControl().setAllowRead(true); wo.getControl().setAllowEdit(canEdit); diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionUpdate.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionUpdate.java index 8d4d64747b4b2616884043ac750ac9a579ebec93..53bd42692945da8af047036535ffe806b1e7f00e 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionUpdate.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/ActionUpdate.java @@ -67,8 +67,7 @@ class ActionUpdate extends BaseAction { List identities = business.organization().identity().listWithPerson(effectivePerson); List units = business.organization().unit().listWithPerson(effectivePerson); - boolean canControl = this.control(attachment, effectivePerson, identities, units); - boolean canEdit = (this.edit(attachment, effectivePerson, identities, units) || canControl); + boolean canEdit = this.edit(attachment, effectivePerson, identities, units, business); if(!canEdit){ throw new ExceptionAccessDenied(effectivePerson, attachment); } diff --git a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/BaseAction.java b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/BaseAction.java index 93f689e627413154dea06e642c6167c692d5b0e3..e09b2326cad0efbcf6933d43b3a409e5bea02adb 100644 --- a/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/BaseAction.java +++ b/o2server/x_processplatform_assemble_surface/src/main/java/com/x/processplatform/assemble/surface/jaxrs/attachment/BaseAction.java @@ -174,47 +174,39 @@ abstract class BaseAction extends StandardJaxrsAction { } public boolean read(Attachment attachment, EffectivePerson effectivePerson, List identities, - List units) throws Exception { + List units, Business business) throws Exception { boolean value = false; - if (effectivePerson.isManager()) { - value = true; - } else if (effectivePerson.isPerson(attachment.getPerson())) { - value = true; - } else if (ListTools.isEmpty(attachment.getReadIdentityList()) + if (ListTools.isEmpty(attachment.getReadIdentityList()) && ListTools.isEmpty(attachment.getReadUnitList())) { value = true; - } else { - if (ListTools.containsAny(identities, attachment.getReadIdentityList()) + }else if (ListTools.containsAny(identities, attachment.getReadIdentityList()) || ListTools.containsAny(units, attachment.getReadUnitList())) { - value = true; - } + value = true; + }else{ + value = this.edit(attachment, effectivePerson, identities, units, business); } return value; } public boolean edit(Attachment attachment, EffectivePerson effectivePerson, List identities, - List units) throws Exception { + List units, Business business) throws Exception { boolean value = false; - if (effectivePerson.isManager()) { - value = true; - } else if (effectivePerson.isPerson(attachment.getPerson())) { - value = true; - } else if (ListTools.isEmpty(attachment.getEditIdentityList()) + if (ListTools.isEmpty(attachment.getEditIdentityList()) && ListTools.isEmpty(attachment.getEditUnitList())) { value = true; - } else { - if (ListTools.containsAny(identities, attachment.getEditIdentityList()) + }else if (ListTools.containsAny(identities, attachment.getEditIdentityList()) || ListTools.containsAny(units, attachment.getEditUnitList())) { - value = true; - } + value = true; + }else{ + value = this.control(attachment, effectivePerson, identities, units, business); } return value; } public boolean control(Attachment attachment, EffectivePerson effectivePerson, List identities, - List units) throws Exception { + List units, Business business) throws Exception { boolean value = false; - if (effectivePerson.isManager()) { + if (business.canManageApplication(effectivePerson, null)) { value = true; } else if (effectivePerson.isPerson(attachment.getPerson())) { value = true; diff --git a/o2web/source/o2_core/o2/xDesktop/Default.js b/o2web/source/o2_core/o2/xDesktop/Default.js index 9874f3175895f5c48da687a647dfe8c9ca6a9e4f..090f17955c3cbb769fbf970ad467a47b9a7705f6 100644 --- a/o2web/source/o2_core/o2/xDesktop/Default.js +++ b/o2web/source/o2_core/o2/xDesktop/Default.js @@ -1827,7 +1827,19 @@ o2.xDesktop.Default.Lnk = new Class({ setEvent: function(){ this.node.addEvents({ "click": function(){ - layout.openApplication(null, this.data.name, this.data.options); + if (this.data.name=="Homepage"){ + var name = this.data.name; + var options = this.data.options; + + if (layout.config.indexPage && layout.config.indexPage.enable && layout.config.indexPage.portal){ + name = "portal.Portal"; + var appId = "portal.Portal"+layout.config.indexPage.portal; + options = {"name": "portal.Portal", "portalId": layout.config.indexPage.portal, "pageId": layout.config.indexPage.page, "appId": appId}; + } + layout.openApplication(null, name, options); + }else{ + layout.openApplication(null, this.data.name, this.data.options); + } }.bind(this), "mouseover": function(){ this.actionNode.fade("in"); diff --git a/o2web/source/x_component_LogViewer/Main.js b/o2web/source/x_component_LogViewer/Main.js index e5d83526394b6817bcc0d1fed689508f843fc989..6b475b9f33370d45954406d068b1a8928bc1afad 100644 --- a/o2web/source/x_component_LogViewer/Main.js +++ b/o2web/source/x_component_LogViewer/Main.js @@ -13,8 +13,9 @@ MWF.xApplication.LogViewer.Main = new Class({ onQueryLoad: function(){ this.lp = MWF.xApplication.LogViewer.LP; this.tagId = o2.uuid(); - - + }, + onQueryClose: function () { + $clear(this.timeDo); }, loadApplication: function(callback){ if (!this.options.isRefresh){