You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/09/15 22:02:32 UTC
git commit: ISIS-895: check that user has permissions to invoke home
page action.
Repository: isis
Updated Branches:
refs/heads/master eb5b2b07f -> 5cd8afdd4
ISIS-895: check that user has permissions to invoke home page action.
In addition:
- always render menu items, even on Error Page.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5cd8afdd
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5cd8afdd
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5cd8afdd
Branch: refs/heads/master
Commit: 5cd8afdd4a24451c1fecc3f8992bf450931eacf1
Parents: eb5b2b0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Sep 15 20:39:55 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Sep 15 20:39:55 2014 +0100
----------------------------------------------------------------------
.../viewer/wicket/ui/pages/PageAbstract.java | 26 +++++--------------
.../viewer/wicket/ui/pages/about/AboutPage.java | 2 +-
.../ui/pages/actionprompt/ActionPromptPage.java | 4 +--
.../wicket/ui/pages/entity/EntityPage.java | 2 +-
.../viewer/wicket/ui/pages/error/ErrorPage.java | 2 +-
.../viewer/wicket/ui/pages/home/HomePage.java | 27 +++++++++++++++++---
.../StandaloneCollectionPage.java | 2 +-
.../viewer/wicket/ui/pages/value/ValuePage.java | 2 +-
.../ui/pages/voidreturn/VoidReturnPage.java | 2 +-
.../interactions/InteractionUtils.java | 8 ------
.../specimpl/ObjectMemberAbstract.java | 17 +-----------
.../webapp/src/main/resources/webapp/realm1.ini | 19 +++++++++-----
12 files changed, 52 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index c469418..1113641 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -68,7 +68,6 @@ import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
import org.apache.isis.viewer.wicket.ui.overlays.Overlays;
import org.apache.isis.viewer.wicket.ui.pages.about.AboutPage;
import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
-import org.apache.isis.viewer.wicket.ui.util.Components;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
/**
@@ -145,14 +144,8 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
@Inject
private PageClassRegistry pageClassRegistry;
- protected enum ApplicationActions {
- INCLUDE,
- EXCLUDE
- }
-
public PageAbstract(
final PageParameters pageParameters,
- final ApplicationActions applicationActions,
final String title,
final ComponentType... childComponentIds) {
try {
@@ -167,7 +160,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
themeDiv.add(new CssClassAppender(asCssStyle(applicationName)));
}
- addApplicationActions(themeDiv, applicationActions);
+ addApplicationActions(themeDiv);
this.childComponentIds = Collections.unmodifiableList(Arrays.asList(childComponentIds));
this.pageParameters = pageParameters;
@@ -314,7 +307,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
/**
- * As provided in the {@link #PageAbstract(org.apache.wicket.request.mapper.parameter.PageParameters, org.apache.isis.viewer.wicket.ui.pages.PageAbstract.ApplicationActions, String, org.apache.isis.viewer.wicket.ui.ComponentType...)} constructor}.
+ * As provided in the {@link #PageAbstract(org.apache.wicket.request.mapper.parameter.PageParameters, String, org.apache.isis.viewer.wicket.ui.ComponentType...)} constructor}.
*
* <p>
* This superclass doesn't do anything with this property directly, but
@@ -330,16 +323,11 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
return pageParameters;
}
- private void addApplicationActions(MarkupContainer container, final ApplicationActions applicationActions) {
- if(applicationActions == ApplicationActions.INCLUDE) {
- addActionPromptModalWindow();
- final ApplicationActionsModel model = new ApplicationActionsModel();
- model.setActionPromptProvider(this);
- addComponent(container, ComponentType.APPLICATION_ACTIONS, model);
- } else {
- Components.permanentlyHide(container, ComponentType.APPLICATION_ACTIONS);
- Components.permanentlyHide(container, ID_ACTION_PROMPT_MODAL_WINDOW);
- }
+ private void addApplicationActions(MarkupContainer container) {
+ addActionPromptModalWindow();
+ final ApplicationActionsModel model = new ApplicationActionsModel();
+ model.setActionPromptProvider(this);
+ addComponent(container, ComponentType.APPLICATION_ACTIONS, model);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
index a0e89f5..e6c3296 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/about/AboutPage.java
@@ -32,7 +32,7 @@ public class AboutPage extends PageAbstract {
private static final long serialVersionUID = 1L;
public AboutPage() {
- super(new PageParameters(), ApplicationActions.INCLUDE, null, ComponentType.ABOUT);
+ super(new PageParameters(), null, ComponentType.ABOUT);
addBookmarkedPages();
addChildComponents(themeDiv, null);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
index 1e03f1a..a36becb 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/actionprompt/ActionPromptPage.java
@@ -39,7 +39,7 @@ public class ActionPromptPage extends PageAbstract {
* For use with {@link Component#setResponsePage(org.apache.wicket.Page)}
*/
public ActionPromptPage(final ActionModel model) {
- super(new PageParameters(), ApplicationActions.INCLUDE, model.getActionMemento().getAction().getName(), ComponentType.ACTION_PROMPT);
+ super(new PageParameters(), model.getActionMemento().getAction().getName(), ComponentType.ACTION_PROMPT);
addChildComponents(themeDiv, model);
if(model.isBookmarkable()) {
@@ -53,7 +53,7 @@ public class ActionPromptPage extends PageAbstract {
}
public ActionPromptPage(final PageParameters pageParameters, final ActionModel model) {
- super(pageParameters, ApplicationActions.INCLUDE, model.getActionMemento().getAction().getName(), ComponentType.ACTION_PROMPT);
+ super(pageParameters, model.getActionMemento().getAction().getName(), ComponentType.ACTION_PROMPT);
addChildComponents(themeDiv, model);
// no need to bookmark because the ActionPanel will have done so for us
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index e7ca28c..b3c5d9a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -88,7 +88,7 @@ public class EntityPage extends PageAbstract {
final PageParameters pageParameters,
final EntityModel entityModel,
final String titleString) {
- super(pageParameters, ApplicationActions.INCLUDE, titleString, ComponentType.ENTITY);
+ super(pageParameters, titleString, ComponentType.ENTITY);
this.model = entityModel;
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
index 6d61334..024f0ca 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/error/ErrorPage.java
@@ -37,7 +37,7 @@ public class ErrorPage extends PageAbstract {
public ErrorPage(ExceptionModel exceptionModel) {
- super(new PageParameters(), ApplicationActions.EXCLUDE, null);
+ super(new PageParameters(), null);
addBookmarkedPages();
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
index ae3e974..d45b8a9 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/home/HomePage.java
@@ -23,7 +23,9 @@ import java.util.List;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.facets.actions.homepage.HomePageFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -42,7 +44,7 @@ public class HomePage extends PageAbstract {
private static final long serialVersionUID = 1L;
public HomePage() {
- super(new PageParameters(), ApplicationActions.INCLUDE, null);
+ super(new PageParameters(), null);
addChildComponents(themeDiv, null);
buildGui();
@@ -77,12 +79,31 @@ public class HomePage extends PageAbstract {
final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
final List<ObjectAction> objectActions = serviceSpec.getObjectActions(Contributed.EXCLUDED);
for (final ObjectAction objectAction : objectActions) {
- if(objectAction.containsFacet(HomePageFacet.class)) {
- return new ObjectAndAction(serviceAdapter, objectAction);
+ final ObjectAndAction oaa = objectAndActionIfHomePageAndUsable(serviceAdapter, objectAction);
+ if(oaa != null) {
+ return oaa;
}
}
}
return null;
}
+ private ObjectAndAction objectAndActionIfHomePageAndUsable(ObjectAdapter serviceAdapter, ObjectAction objectAction) {
+ if (!objectAction.containsDoOpFacet(HomePageFacet.class)) {
+ return null;
+ }
+
+ final Consent visibility = objectAction.isVisible(getAuthenticationSession(), serviceAdapter, Where.ANYWHERE);
+ if (visibility.isVetoed()) {
+ return null;
+ }
+
+ final Consent usability = objectAction.isUsable(getAuthenticationSession(), serviceAdapter, Where.ANYWHERE);
+ if (usability.isVetoed()) {
+ return null;
+ }
+
+ return new ObjectAndAction(serviceAdapter, objectAction);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
index 685fc09..b4c1a3a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/standalonecollection/StandaloneCollectionPage.java
@@ -40,7 +40,7 @@ public class StandaloneCollectionPage extends PageAbstract {
* For use with {@link Component#setResponsePage(org.apache.wicket.Page)}
*/
public StandaloneCollectionPage(final EntityCollectionModel model) {
- super(new PageParameters(), ApplicationActions.INCLUDE, actionNameFrom(model), ComponentType.STANDALONE_COLLECTION);
+ super(new PageParameters(), actionNameFrom(model), ComponentType.STANDALONE_COLLECTION);
addChildComponents(themeDiv, model);
addBookmarkedPages();
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
index f42fa89..62eaabd 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/value/ValuePage.java
@@ -49,7 +49,7 @@ public class ValuePage extends PageAbstract {
private ValuePage(ValueModel valueModel, String actionName) {
- super(new PageParameters(), ApplicationActions.INCLUDE, actionName, ComponentType.VALUE);
+ super(new PageParameters(), actionName, ComponentType.VALUE);
themeDiv.addOrReplace(new Label(ID_ACTION_NAME, actionName));
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
index 91a7451..50b1ce3 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/voidreturn/VoidReturnPage.java
@@ -47,7 +47,7 @@ public class VoidReturnPage extends PageAbstract {
}
private VoidReturnPage(final VoidModel model, final String actionName) {
- super(new PageParameters(), ApplicationActions.INCLUDE, actionName, ComponentType.VOID_RETURN);
+ super(new PageParameters(), actionName, ComponentType.VOID_RETURN);
themeDiv.addOrReplace(new Label(ID_ACTION_NAME, actionName));
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionUtils.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionUtils.java
index 7f2dc48..0af9114 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/InteractionUtils.java
@@ -42,10 +42,6 @@ public final class InteractionUtils {
return result;
}
- public static InteractionResultSet isVisibleResultSet(final FacetHolder facetHolder, final VisibilityContext<?> context, final InteractionResultSet resultSet) {
- return resultSet.add(isVisibleResult(facetHolder, context));
- }
-
public static InteractionResult isUsableResult(final FacetHolder facetHolder, final UsabilityContext<?> context) {
final InteractionResult result = new InteractionResult(context.createInteractionEvent());
final List<Facet> facets = facetHolder.getFacets(FacetFilters.isA(DisablingInteractionAdvisor.class));
@@ -57,10 +53,6 @@ public final class InteractionUtils {
return result;
}
- public static InteractionResultSet isUsableResultSet(final FacetHolder facetHolder, final UsabilityContext<?> context, final InteractionResultSet resultSet) {
- return resultSet.add(isUsableResult(facetHolder, context));
- }
-
public static InteractionResult isValidResult(final FacetHolder facetHolder, final ValidityContext<?> context) {
final InteractionResult result = new InteractionResult(context.createInteractionEvent());
final List<Facet> facets = facetHolder.getFacets(FacetFilters.isA(ValidatingInteractionAdvisor.class));
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index a232cf4..6b4f183 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -20,7 +20,6 @@
package org.apache.isis.core.metamodel.specloader.specimpl;
import java.util.List;
-
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
@@ -32,7 +31,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.consent.Allow;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -41,16 +39,11 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.actions.homepage.HomePageFacet;
import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
-import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
-import org.apache.isis.core.metamodel.interactions.UsabilityContext;
-import org.apache.isis.core.metamodel.interactions.VisibilityContext;
+import org.apache.isis.core.metamodel.interactions.*;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
@@ -231,10 +224,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
*/
@Override
public Consent isVisible(final AuthenticationSession session, final ObjectAdapter target, Where where) {
- final boolean isHomePage = containsDoOpFacet(HomePageFacet.class);
- if(isHomePage) {
- return Allow.DEFAULT;
- }
return isVisibleResult(session, target, where).createConsent();
}
@@ -257,10 +246,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
*/
@Override
public Consent isUsable(final AuthenticationSession session, final ObjectAdapter target, Where where) {
- final boolean isHomePage = containsDoOpFacet(HomePageFacet.class);
- if(isHomePage) {
- return Allow.DEFAULT;
- }
return isUsableResult(session, target, where).createConsent();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5cd8afdd/example/application/todoapp/webapp/src/main/resources/webapp/realm1.ini
----------------------------------------------------------------------
diff --git a/example/application/todoapp/webapp/src/main/resources/webapp/realm1.ini b/example/application/todoapp/webapp/src/main/resources/webapp/realm1.ini
index 6483045..57036eb 100644
--- a/example/application/todoapp/webapp/src/main/resources/webapp/realm1.ini
+++ b/example/application/todoapp/webapp/src/main/resources/webapp/realm1.ini
@@ -33,9 +33,9 @@
#
sven = pass, admin_role
-dick = pass, user_role, analysis_role, self-install_role
-bob = pass, user_role, self-install_role
-joe = pass, user_role, self-install_role
+dick = pass, readwrite_role, dashboard_role, analysis_role, self-install_role
+bob = pass, readwrite_role, dashboard_role, self-install_role
+joe = pass, readwrite_role, self-install_role
guest = guest, readonly_role
@@ -70,19 +70,24 @@ guest = guest, readonly_role
# configuring iniRealm to use Shiro's built-in WildcardPermissions
+
+readwrite_role = *:ToDoItems:*:*,\
+ *:ToDoItem:*:*
+
readonly_role = *:ToDoItems:notYetComplete:*,\
*:ToDoItems:complete:*,\
*:ToDoItems:allToDos:*,\
- *:ToDoAppDashboard:*:*,\
*:ToDoItem:*:r
-user_role = *:ToDoItems:*:*,\
- *:ToDoItem:*:*,\
- *:ToDoAppDashboard:*:*
+dashboard_role = *:ToDoAppDashboardService:*:*,\
+ *:ToDoAppDashboard:*:*
+
analysis_role = *:ToDoItemAnalysis:*:*,\
*:ToDoItemsByCategoryViewModel:*:*,\
*:ToDoItemsByDateRangeViewModel:*:*
+
self-install_role = *:ToDoItemsFixturesService:installFixtures:*
+
admin_role = *