This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-2485 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 5e0b1f5375e1b2c93a85bad97167f13b57cdd048 Author: danhaywood <[email protected]> AuthorDate: Sun May 21 16:47:50 2023 +0100 CAUSEWAY-2485: cleans up Secman SPI example --- .../src/main/java/demoapp/dom/DemoModuleJpa.java | 2 +- .../java/demoapp/dom/featured/FeaturedMenu.java | 2 + .../causewayext/CausewayExtTypesMenu.java | 4 +- .../cal/CausewayCalendarEvents-common.adoc | 0 .../cal/CausewayCalendarEvents-description.adoc | 0 .../causewayext/cal/CausewayCalendarEvents.java | 6 +-- .../cal/CausewayCalendarEvents.layout.xml | 0 .../cal/holder/CausewayCalendarEventHolder.java | 2 +- .../cal/holder/CausewayCalendarEventHolder2.java | 2 +- ...ausewayCalendarEventHolder_actionReturning.java | 2 +- ...endarEventHolder_actionReturningCollection.java | 2 +- .../CausewayCalendarEventHolder_mixinProperty.java | 2 +- ...EventHolder_updateReadOnlyOptionalProperty.java | 2 +- ..._updateReadOnlyOptionalPropertyWithChoices.java | 2 +- ...CalendarEventHolder_updateReadOnlyProperty.java | 2 +- ...ntHolder_updateReadOnlyPropertyWithChoices.java | 2 +- .../jdo/CausewayCalendarEventJdo-description.adoc | 0 .../cal/jdo/CausewayCalendarEventJdo.java | 5 +- .../cal/jdo/CausewayCalendarEventJdoEntities.java | 2 +- .../jpa/CausewayCalendarEventJpa-description.adoc | 0 .../cal/jpa/CausewayCalendarEventJpa.java | 5 +- .../cal/jpa/CausewayCalendarEventJpaEntities.java | 2 +- .../persistence/CausewayCalendarEventEntity.java | 4 +- .../CausewayCalendarEventEntity.layout.xml | 0 .../persistence/CausewayCalendarEventSeeding.java | 2 +- .../cal/samples/CausewayCalendarEventSamples.java | 2 +- .../vm/CausewayCalendarEventVm-description.adoc | 0 .../cal/vm/CausewayCalendarEventVm.java | 5 +- .../cal/vm/CausewayCalendarEventVm.layout.xml | 0 .../sse/AsyncActionDemo-description.adoc | 0 .../causewayext/sse/AsyncActionDemo.java | 2 +- .../causewayext/sse/AsyncActionDemo.layout.xml | 0 .../causewayext/sse/AsyncActionMenu.java | 2 +- .../causewayext/sse/DemoTask.java | 2 +- .../causewayext/sse/TaskProgress.java | 2 +- .../dom/featured/causewayext/sse/package-info.java | 4 ++ .../dom/featured/layout/tabs/TabDemo.layout.xml | 13 ++--- .../src/main/java/demoapp/dom/menubars.layout.xml | 26 ++++----- .../apptenancy/AppTenancyVm-description.adoc | 62 +++++++++++++--------- .../ApplicationTenancyEvaluatorForDemo.java | 9 +++- .../dom/types/causewayext/sse/package-info.java | 4 -- 41 files changed, 97 insertions(+), 88 deletions(-) diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java index 50b6ec5486..9a8858bf77 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java @@ -66,7 +66,7 @@ import demoapp.dom.types.causeway.clobs.jpa.CausewayClobJpa; import demoapp.dom.types.causeway.localresourcepaths.jpa.CausewayLocalResourcePathJpa; import demoapp.dom.types.causeway.markups.jpa.CausewayMarkupJpa; import demoapp.dom.types.causeway.passwords.jpa.CausewayPasswordJpa; -import demoapp.dom.types.causewayext.cal.jpa.CausewayCalendarEventJpa; +import demoapp.dom.featured.causewayext.cal.jpa.CausewayCalendarEventJpa; import demoapp.dom.types.causewayval.asciidocs.jpa.CausewayAsciiDocJpa; import demoapp.dom.types.causewayval.markdowns.jpa.CausewayMarkdownJpa; import demoapp.dom.types.causewayval.vegas.jpa.CausewayVegaJpa; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java index 524c5af568..17f6882a48 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java @@ -85,6 +85,8 @@ public class FeaturedMenu { return 14; } + + @Action(semantics = SemanticsOf.SAFE) @ActionLayout(cssClassFa="fa-comment", describedAs="Opens the Tooltip-Demo page.") public DescribedAsVm toolTips(){ diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java similarity index 93% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java index f5f4bd82fd..f8f27b6ef0 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext; +package demoapp.dom.featured.causewayext; import javax.inject.Named; @@ -29,7 +29,7 @@ import org.apache.causeway.applib.annotation.NatureOfService; import org.apache.causeway.applib.annotation.PriorityPrecedence; import org.apache.causeway.applib.annotation.SemanticsOf; -import demoapp.dom.types.causewayext.cal.CausewayCalendarEvents; +import demoapp.dom.featured.causewayext.cal.CausewayCalendarEvents; @Named("demo.CausewayExtTypesMenu") @DomainService( diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-common.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-common.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-common.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-common.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-description.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-description.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-description.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java similarity index 93% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java index d82ce3ea90..310fbed097 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal; +package demoapp.dom.featured.causewayext.cal; import java.util.List; @@ -43,9 +43,9 @@ import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; import demoapp.dom._infra.values.ValueHolderRepository; +import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity; +import demoapp.dom.featured.causewayext.cal.vm.CausewayCalendarEventVm; import demoapp.dom.types.Samples; -import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity; -import demoapp.dom.types.causewayext.cal.vm.CausewayCalendarEventVm; @XmlRootElement(name = "Demo") @XmlType diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.layout.xml similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.layout.xml rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.layout.xml diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java index 79fd41fb30..8c287691a3 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import javax.inject.Named; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java similarity index 98% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java index 9611f51501..928170357c 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import org.apache.causeway.applib.annotation.LabelPosition; import org.apache.causeway.applib.annotation.Property; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java index 942b312883..3cf8b6adb5 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import org.apache.causeway.applib.annotation.Action; import org.apache.causeway.applib.annotation.SemanticsOf; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java index 76cefe8fc8..ed8a6d851f 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import java.util.Collection; import java.util.stream.Collectors; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java index aaca9d1362..2127865c4c 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import org.apache.causeway.applib.annotation.Property; import org.apache.causeway.applib.annotation.PropertyLayout; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java index 31d47fc3ab..a27999d700 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import org.apache.causeway.applib.annotation.Action; import org.apache.causeway.applib.annotation.ActionLayout; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java index 9a0028d99f..6786be8691 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import java.util.List; import java.util.stream.Collectors; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java index e8b2cbfa7e..8fd7fa0f78 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import org.apache.causeway.applib.annotation.Action; import org.apache.causeway.applib.annotation.ActionLayout; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java index a060f115ba..fff54990ab 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.holder; +package demoapp.dom.featured.causewayext.cal.holder; import java.util.List; import java.util.stream.Collectors; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java index c234fd6394..52b45c2944 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.jdo; +package demoapp.dom.featured.causewayext.cal.jdo; import javax.inject.Named; import javax.jdo.annotations.Column; @@ -36,11 +36,10 @@ import org.apache.causeway.applib.annotation.Title; import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent; +import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity; import lombok.Getter; import lombok.Setter; -import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity; - @Profile("demo-jdo") //tag::class[] @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo") diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java index f9608a2a34..c5b563ebbf 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.jdo; +package demoapp.dom.featured.causewayext.cal.jdo; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java index c8ac538d0b..735ee8806e 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.jpa; +package demoapp.dom.featured.causewayext.cal.jpa; import javax.inject.Named; import javax.persistence.Column; @@ -38,12 +38,11 @@ import org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityList import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent; +import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity; - @Profile("demo-jpa") //tag::class[] @Entity diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java index f685c186a6..92b08887b2 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.jpa; +package demoapp.dom.featured.causewayext.cal.jpa; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java similarity index 91% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java index 657f7e450a..0ee658d8a9 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.persistence; +package demoapp.dom.featured.causewayext.cal.persistence; import javax.inject.Named; @@ -24,7 +24,7 @@ import org.apache.causeway.applib.annotation.DomainObject; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; import demoapp.dom._infra.values.ValueHolder; -import demoapp.dom.types.causewayext.cal.holder.CausewayCalendarEventHolder2; +import demoapp.dom.featured.causewayext.cal.holder.CausewayCalendarEventHolder2; import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java similarity index 95% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java index 9fafbaf3f1..1e1bd1f14d 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.persistence; +package demoapp.dom.featured.causewayext.cal.persistence; import javax.inject.Inject; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java similarity index 96% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java index 14b9d33947..11d31620f7 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.samples; +package demoapp.dom.featured.causewayext.cal.samples; import java.util.stream.Stream; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java similarity index 94% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java index d80581fcab..9ae401e803 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.cal.vm; +package demoapp.dom.featured.causewayext.cal.vm; import javax.inject.Named; import javax.xml.bind.annotation.XmlAccessType; @@ -24,7 +24,6 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.causeway.applib.annotation.DomainObject; import org.apache.causeway.applib.annotation.Editing; @@ -36,11 +35,11 @@ import org.apache.causeway.applib.annotation.Title; import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent; +import demoapp.dom.featured.causewayext.cal.holder.CausewayCalendarEventHolder2; import lombok.Getter; import lombok.Setter; import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription; -import demoapp.dom.types.causewayext.cal.holder.CausewayCalendarEventHolder2; //tag::class[] @XmlRootElement(name = "root") diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo-description.adoc similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo-description.adoc rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo-description.adoc diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java similarity index 98% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java index 0ffbecb547..cc5a72ffb3 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.sse; +package demoapp.dom.featured.causewayext.sse; import javax.inject.Inject; import javax.inject.Named; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.layout.xml similarity index 100% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.layout.xml rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.layout.xml diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java index 398d3f31f4..fc07a055fb 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.sse; +package demoapp.dom.featured.causewayext.sse; import javax.inject.Inject; import javax.inject.Named; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java index b2f613c958..0c1d802ec3 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.sse; +package demoapp.dom.featured.causewayext.sse; import java.util.concurrent.atomic.LongAdder; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java similarity index 97% rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java index ce781d130a..b31a117e8b 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package demoapp.dom.types.causewayext.sse; +package demoapp.dom.featured.causewayext.sse; import java.util.concurrent.atomic.LongAdder; diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java new file mode 100644 index 0000000000..6bad946df3 --- /dev/null +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java @@ -0,0 +1,4 @@ +/** + * This files are NOT generated. + */ +package demoapp.dom.featured.causewayext.sse; \ No newline at end of file diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml index 6fd1d941e0..fbd48659eb 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml +++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml @@ -13,16 +13,13 @@ xmlns:cpt="https://causeway.apache.org/applib/layout/component" > <bs3:row> - <bs3:col span="12" unreferencedActions="true"> - <cpt:domainObject/> - <cpt:action id="clearHints"/> - <cpt:action id="downloadLayoutXml"/> - <cpt:action id="openRestApi"/> - <cpt:action id="rebuildMetamodel"/> - + <bs3:col span="10" unreferencedActions="true"> + <cpt:domainObject /> <cpt:action id="doHideField"/> <cpt:action id="doShowField"/> - + </bs3:col> + <bs3:col span="2"> + <cpt:fieldSet name="" id="sources" /> </bs3:col> </bs3:row> <bs3:row> diff --git a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml index 321aeffd60..5ede0a654e 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml +++ b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml @@ -173,6 +173,10 @@ For latest we use: https://raw.githubusercontent.com/apache/causeway/master/anto <mb3:named>Core SPIs</mb3:named> <mb3:serviceAction objectType="demo.ServicesMenu" id="errorReportingService" /> </mb3:section> + <mb3:section> + <mb3:named>SecMan SPI</mb3:named> + <mb3:serviceAction objectType="demo.ExtSecManMenu" id="appTenancy"/> + </mb3:section> </mb3:menu> <mb3:menu> @@ -284,28 +288,20 @@ For latest we use: https://raw.githubusercontent.com/apache/causeway/master/anto </mb3:menu> <mb3:menu> - <mb3:named>Extensions</mb3:named> + <mb3:named>Featured</mb3:named> <mb3:section> - <mb3:named>Wicket Viewer</mb3:named> + <mb3:named>Layout</mb3:named> + <mb3:serviceAction objectType="demo.FeaturedMenu" id="toolTips" /> + <mb3:serviceAction objectType="demo.FeaturedMenu" id="tabDemo" /> + </mb3:section> + <mb3:section> + <mb3:named>Wicket Extensions</mb3:named> <mb3:serviceAction objectType="demo.CausewayExtTypesMenu" id="calendarEvents"/> <mb3:serviceAction objectType="demo.AsyncActionMenu" id="asyncActions"> <cpt:named>SSE</cpt:named> <cpt:describedAs>Background (Async) Actions</cpt:describedAs> </mb3:serviceAction> </mb3:section> - <mb3:section> - <mb3:named>SecMan</mb3:named> - <mb3:serviceAction objectType="demo.ExtSecManMenu" id="appTenancy"/> - </mb3:section> - </mb3:menu> - - <mb3:menu> - <mb3:named>Featured</mb3:named> - <mb3:section> - <mb3:named>Layout</mb3:named> - <mb3:serviceAction objectType="demo.FeaturedMenu" id="toolTips" /> - <mb3:serviceAction objectType="demo.FeaturedMenu" id="tabDemo" /> - </mb3:section> <mb3:section> <mb3:named>Custom UI</mb3:named> <mb3:serviceAction objectType="demo.FeaturedMenu" id="whereInTheWorld" /> diff --git a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc index bf5191b2ca..85c4fbfb0f 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc +++ b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc @@ -2,27 +2,55 @@ Application Tenancy is the idea that certain information "belongs" to one party and should be either not visible or at least not modifiable by some other party. -The SecMan extension provides a very flexible way of implementing this, through the `ApplicationTenancyEvaluator` SPI. +The SecMan extension provides a very flexible way of implementing this, through the link:https://causeway.apache.org/refguide/2.0.0-RC1/extensions/index/secman/applib/tenancy/spi/ApplicationTenancyEvaluator.html#section-top[ApplicationTenancyEvaluator] SPI. This allows a domain service to decide whether to hide or to disable each object for the current user. -For example: +[IMPORTANT] +==== +This SPI is a presentation-layer concern only. +It does not prevent the domain objects from being retrieved from the data store. +In particular, there is nothing to prevent "malicious" code from retrieving and interacting with objects from another tenancy. +==== + +== How this demo works + +On the left hand side is a collection of objects, each with different names. +There are also two properties that control an implementation of `ApplicationTenancyEvaluator`. +* The "Hide Regex" determines which objects with a matching name should be hidden. +For example, "M.\*" will hide those whose name starting "M", while ".*" will hide them all. +* The "Disable Regex" determines which objects can no longer be modified (when you navigate into them). + +In terms of code: + +* the SPI implementation is: ++ [source,java] +.ApplicationTenancyEvaluatorForDemo.java ---- include::ApplicationTenancyEvaluatorForDemo.java[tags=class] ---- <.> implements the SPI. There can be multiple implementations; all will be checked. - <.> whether this implementation handles the type of the domain object being considered. -This demo application deals only with the `TenantedJdo` entity type. - +<.> set by the page object +This demo application deals only with the `TenantedEntity` entity type. <.> whether the current user can view the domain object. +<.> whether the current user can modify (invoke actions, edit the properties of) the domain object. + +* the page object has actions that set a pattern on the service. ++ +[source,java] +.AppTenancyVm.java +---- +include::AppTenancyVm.java[tags=hideRegex] +---- + -<.> whether the current user can interact (invoke actions, modify the properties of) the domain object. +=== Leveraging User Tenancy -This demo example doesn't in fact use the current `ApplicationUser` at all. -A typical implementation though can exploit the fact that `ApplicationUser` implements `HasAtPath` and therefore can return an `atPath`: the "application tenancy path": +This demo implementation doesn't in fact use the current `ApplicationUser` at all. +A more realistic implementation would exploit the fact that `ApplicationUser` implements `HasAtPath` and therefore can return an `atPath`: the "application tenancy path": [source,java] ---- @@ -34,20 +62,4 @@ public interface ApplicationUser extends HasAtPath { The `atPath` is just a string and can take any format and be processed in any way that makes sense. One algorithm is to use it to define a hierarchy path, for example "/GBR/LON" represents a user based in London, Great Britain while "/ITA/MIL" is a user based in Milan, Italy. -If the domain object also implements `HasAtPath`, then the `ApplicationTenancyEvaluator` can compare the two ``atPath``s to determine if the location/tenancy of the user is compatible with the location/tenancy of the domain object. - -This particular demo though simply uses a regular expression to control visibility and usability, with two properties (to the left-hand side of this page) used to control the domain service. -For example: - -[source,java] ----- -include::AppTenancyVm.java[tags=hideRegex] ----- - -[IMPORTANT] -==== -This SPI is a presentation-layer concern only. -It does not prevent the domain objects from being retrieved from the data store. - -In particular, there is nothing to prevent "malicious" code from retrieving and interacting with objects from another tenancy. -==== +If the domain object also implements `HasAtPath`, then the `ApplicationTenancyEvaluator` can compare the two ``atPath``s to determine if the location/tenancy of the user is should allow access to the location/tenancy of the domain object. diff --git a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java index c3efcb9746..c0c79616f9 100644 --- a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java +++ b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java @@ -40,6 +40,7 @@ public class ApplicationTenancyEvaluatorForDemo return TenantedEntity.class.isAssignableFrom(cls); } + private Pattern hidePattern; // <.> @Override public String hides(Object domainObject, ApplicationUser applicationUser) { // <.> if(hidePattern == null) { @@ -53,6 +54,7 @@ public class ApplicationTenancyEvaluatorForDemo : null; } + private Pattern disablePattern; // <3> @Override public String disables(Object domainObject, ApplicationUser applicationUser) { // <.> if(disablePattern == null) { @@ -65,7 +67,10 @@ public class ApplicationTenancyEvaluatorForDemo ? String.format("disabled, because name matches '%s'", disablePattern) : null; } + // ... +//end::class[] +//tag::hideRegex[] @Getter private String hideRegex; public void setHideRegex(String hideRegex) { @@ -74,7 +79,7 @@ public class ApplicationTenancyEvaluatorForDemo ? Pattern.compile(hideRegex) : null; } - private Pattern hidePattern; +//end::hideRegex[] @Getter private String disableRegex; @@ -84,7 +89,7 @@ public class ApplicationTenancyEvaluatorForDemo ? Pattern.compile(disableRegex) : null; } - private Pattern disablePattern; +//tag::class[] } //end::class[] diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java b/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java deleted file mode 100644 index 674db93f96..0000000000 --- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * This files are NOT generated. - */ -package demoapp.dom.types.causewayext.sse; \ No newline at end of file
