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 2021/06/10 08:53:06 UTC

[isis] 03/03: ISIS-2483: adds docs on menubars for prototyping and secman

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7a9b864f14eb6d0f4d47319d00e0b296a32ed026
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 10 09:52:46 2021 +0100

    ISIS-2483: adds docs on menubars for prototyping and secman
---
 .../modules/fun/pages/ui/menubars-layout.adoc      | 85 ++++++++++++++++++++++
 .../adoc/modules/secman/pages/setting-up.adoc      | 65 +++++++++++++++++
 2 files changed, 150 insertions(+)

diff --git a/antora/components/userguide/modules/fun/pages/ui/menubars-layout.adoc b/antora/components/userguide/modules/fun/pages/ui/menubars-layout.adoc
index 055bb4d..a164220 100644
--- a/antora/components/userguide/modules/fun/pages/ui/menubars-layout.adoc
+++ b/antora/components/userguide/modules/fun/pages/ui/menubars-layout.adoc
@@ -173,6 +173,91 @@ If running in prototype mode, the file will be dynamically reloaded from the cla
 
 Once the application has bootstrapped with a layout file, downloading the "Default" layout (from the prototyping menu) in essence just returns this file.
 
+
+=== Prototyping menu
+
+The framework provides a large number of menu actions available in prototyping mode.
+You can use `menubars.layout.xml` to arrange these as you see fit, though our recommendation is to place them all in a "Prototyping" secondary menu:
+
+[source,xml]
+.menubars.layout.xml
+----
+<mb3:secondary>
+    <mb3:menu>
+        <mb3:named>Prototyping</mb3:named>
+        <mb3:section>
+            <mb3:named>Fixtures</mb3:named>
+            <mb3:serviceAction objectType="isis.testing.fixtures.FixtureScripts" id="runFixtureScript"/>
+            <mb3:serviceAction objectType="isis.testing.fixtures.FixtureScripts" id="recreateObjectsAndReturnFirst"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Layouts</mb3:named>
+            <mb3:serviceAction objectType="isis.applib.LayoutServiceMenu" id="downloadLayouts"/>
+            <mb3:serviceAction objectType="isis.applib.LayoutServiceMenu" id="downloadMenuBarsLayout"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Meta Model and Features</mb3:named>
+            <mb3:serviceAction objectType="isis.applib.MetaModelServiceMenu" id="downloadMetaModelXml"/>
+            <mb3:serviceAction objectType="isis.applib.MetaModelServiceMenu" id="downloadMetaModelCsv"/>
+            <mb3:serviceAction objectType="isis.feat.ApplicationFeatureMenu" id="allNamespaces"/>
+            <mb3:serviceAction objectType="isis.feat.ApplicationFeatureMenu" id="allTypes"/>
+            <mb3:serviceAction objectType="isis.feat.ApplicationFeatureMenu" id="allActions"/>
+            <mb3:serviceAction objectType="isis.feat.ApplicationFeatureMenu" id="allProperties"/>
+            <mb3:serviceAction objectType="isis.feat.ApplicationFeatureMenu" id="allCollections"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Persistence</mb3:named>
+            <mb3:serviceAction objectType="isis.persistence.jdo.JdoMetamodelMenu" id="downloadMetamodels"/>
+            <mb3:serviceAction objectType="isis.ext.h2Console.H2ManagerMenu" id="openH2Console"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>REST API</mb3:named>
+            <mb3:serviceAction objectType="isis.viewer.restfulobjects.SwaggerServiceMenu" id="openSwaggerUi"/>
+            <mb3:serviceAction objectType="isis.viewer.restfulobjects.SwaggerServiceMenu" id="openRestApi"/>
+            <mb3:serviceAction objectType="isis.viewer.restfulobjects.SwaggerServiceMenu" id="downloadSwaggerSchemaDefinition"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>i18n</mb3:named>
+            <mb3:serviceAction objectType="isis.applib.TranslationServicePoMenu" id="downloadTranslations"/>
+            <mb3:serviceAction objectType="isis.applib.TranslationServicePoMenu" id="resetTranslationCache"/>
+            <mb3:serviceAction objectType="isis.applib.TranslationServicePoMenu" id="switchToReadingTranslations"/>
+            <mb3:serviceAction objectType="isis.applib.TranslationServicePoMenu" id="switchToWritingTranslations"/>
+        </mb3:section>
+    </mb3:menu>
+</mb3:secondary>
+----
+
+
+=== Tertiary menu
+
+The framework also provides a number of menu actions available in production (as oppposed to prototyping) mode.
+You can use `menubars.layout.xml` to arrange these as you see fit, though our recommendation is to place them in the tertiary menu:
+
+[source,xml]
+.menubars.layout.xml
+----
+<mb3:tertiary>
+    <mb3:menu>
+        <mb3:named/>
+        <mb3:section>
+            <mb3:named>Configuration</mb3:named>
+            <mb3:serviceAction objectType="isis.conf.ConfigurationMenu" id="configuration"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Impersonate</mb3:named>
+            <mb3:serviceAction objectType="isis.sudo.ImpersonateMenu" id="impersonate"/>
+            <mb3:serviceAction objectType="isis.sudo.ImpersonateMenu" id="impersonateWithRoles"/>
+            <mb3:serviceAction objectType="isis.sudo.ImpersonateMenu" id="stopImpersonating"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:serviceAction objectType="isis.security.LogoutMenu" id="logout"/>
+        </mb3:section>
+    </mb3:menu>
+</mb3:tertiary>
+----
+
+
+
 === Downloading the layout file
 
 The current `menubars.layout.xml` can be downloaded from the xref:refguide:applib:index/services/menu/MenuBarsService.adoc[MenuBarsService] (exposed on the prototyping menu):
diff --git a/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc b/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
index 70da767..2c3d762 100644
--- a/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
+++ b/extensions/security/secman/adoc/modules/secman/pages/setting-up.adoc
@@ -81,6 +81,13 @@ public class AppManifest {
 <.> use Jbcrypt to encrypt passwords
 <.> fixture script support
 
+In addition, you will probably want to *remove* the `IsisModuleSecurityShiro.class` dependency so that SecMan can take care of both authentication _and_ authorisation.
+
+[NOTE]
+====
+It also possible to use SecMan in conjunction with Shiro, as described xref:setting-up-with-shiro.adoc[here].
+The primary use case is to support delegated users that Shiro authenticates externally using LDAP, for example.
+====
 
 [#configure-properties]
 == Configuration Properties
@@ -132,6 +139,64 @@ These can be removed (through the UI).
 +
 This is discussed in more detail <<user-registration-aka-sign-up,below>>.
 
+
+== menubar.layout.xml
+
+SecMan provides a large number of menu actions.
+You can use `menubars.layout.xml` to arrange these as you see fit.
+To get you started, the following fragment adds all of the actions to a "Security" secondary menu:
+
+[source,xml]
+.menubars.layout.xml
+----
+<mb3:secondary>
+    ...
+    <mb3:menu>
+        <mb3:named>Security</mb3:named>
+        <mb3:section>
+            <mb3:named>Users</mb3:named>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="userManager"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="findUsers"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Roles</mb3:named>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationRoleMenu" id="findRoles"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationRoleMenu" id="newRole"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationRoleMenu" id="allRoles"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Permissions</mb3:named>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationPermissionMenu" id="allPermissions"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationPermissionMenu" id="findOrphanedPermissions"/>
+        </mb3:section>
+        <mb3:section>
+            <mb3:named>Tenancies</mb3:named>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationTenancyMenu" id="findTenancies"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationTenancyMenu" id="newTenancy"/>
+            <mb3:serviceAction objectType="isis.ext.secman.ApplicationTenancyMenu" id="allTenancies"/>
+        </mb3:section>
+    </mb3:menu>
+</mb3:secondary>
+----
+
+We also recommend adding the non-production "me" action to the tertiary menu, eg just above the "logout" action:
+
+[source,xml]
+.menubars.layout.xml
+----
+<mb3:tertiary>
+    <mb3:menu>
+        ...
+        <mb3:section>
+            <mb3:serviceAction objectType="isis.ext.secman.MeService" id="me"/>
+            <mb3:serviceAction objectType="isis.security.LogoutMenu" id="logout"/>
+        </mb3:section>
+    </mb3:menu>
+</mb3:tertiary>
+----
+
+
+
 [#default-roles]
 == Default Roles