Recherche

Sommaire

Pages enfant
  • Suppression ou restriction de fonctionnalités

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

Nuxeo apporte une gamme de fonctionnalité très (parfois trop) importante. Il peut s'avérer nécessaire d'en simplifier l'utilisation. Vous trouverez ici différentes techniques vous permettant de restreindre ou désactiver certaines fonctionnalités que vous ne souhaitez pas mettre à disposition.

Sommaire

Suppression de la navigation par sujets et par lieux

La navigation par sujet et couverture correspond aux deux onglets mis en surbrillance dans la précédente capture d'écran. Nuxeo propose un mécanisme simple permettant de les supprimer. Il vous suffit de contribuer au point d'extension trees du composant org.nuxeo.ecm.webapp.directory.DirectoryTreeService.

Pour cela, créez un fichier directorytreemanager-config.xml dans le dossier <racine_nuxeo>/templates/custom/config et éditez le :

Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.esup.ecm.virtualnavigation.directory.DirectoryTreeService.config">
  <require>org.nuxeo.ecm.virtualnavigation.directory.DirectoryTreeService.contrib</require>
  <extension target="org.nuxeo.ecm.webapp.directory.DirectoryTreeService" point="trees">
    <directoryTree name="bySubjectsNavigation" enabled="false" />
    <directoryTree name="byCoverageNavigation" enabled="false" />
  </extension>
</component>

Suppression de la navigation par tags et de la recherche par filtres

  
La navigation par tags et la recherche par filtres correspondent aux deux onglets mis en surbrillance dans la capture d'écran ci-dessus. Tout comme la navigation par sujets et par couverture il est possible de les désactiver. Pour cela, il vous suffit de contribuer au point d'extension navigationTree du composant org.nuxeo.ecm.platform.virtualnavigation.NavTreeService.

Créez un fichier navtree-config.xml dans le dossier  <racine_nuxeo>/templates/custom/config et éditez le :

nuxeo-dm-5.4.2-tomcat/templates/custom/config/navtree-config.xml :

Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.esup.ecm.virtualnavigation.tagsConfig">

  <require>org.nuxeo.ecm.virtualnavigation.tagsContrib</require>
  <require>org.nuxeo.ecm.platform.faceted.search.dm.navtree</require>

  <extension target="org.nuxeo.ecm.platform.virtualnavigation.NavTreeService" point="navigationTree">
    <navTree treeId="TAG_CLOUD" enabled="false" />     <!-- Supprime la navigation par tags -->
    <navTree treeId="facetedSearch" enabled="false" /> <!-- Supprime la recherche par filtres -->
  </extension>

</component>

Si vos souhaitez complètement désactiver la fonctionnalité des tags dans Nuxeo, vous pouvez également supprimer les jar suivants du répertoire <racine_nuxeo>/nxserver/bundles :

  • nuxeo-platform-tag-api-xxx.jar,
  • nuxeo-platform-tag-core-xxx.jar,
  • nuxeo-platform-tag-web-xxx.jar

Supprimer la vue compacte et la vue en icônes

Nuxeo offre à l'utilisateur la possibilité de personnaliser l'affichage des éléments d'un document. Si vous souhaitez supprimer cette fonctionnalité et alléger l'interface utilisateur alors il vous suffit de modifier la définition du content view nommé document_content situé dans le point d'extension contentViews du composant org.nuxeo.ecm.platform.ui.web.ContentViewService et de commenter l'inclusion des layouts document_listing_ajax_compact_2_columns, document_listing_ajax_icon_2_columns. Vous avez également la possibilité de créer votre propre contentView (plutôt que redéfinir celui de Nuxeo) : si vous choisissez cette méthode, vous trouverez les explications sur les manipulations à effectuer dans le chapitre contentView.

Remarque : il existe aussi une content-view qui gère l'affichage dans les sections : section_content. Si vous voulez modifier l'affichage dans les sections, il faut aussi modifier cette content-view.

Créez un fichier nommé contentviews-config.xml dans le dossier <racine_nuxeo>/templates/custom/config et éditez le :

Bloc de code
langxml
<?xml version="1.0" encoding="UTF-8"?>

<component name="org.esup.ecm.webapp.contentview.config">

  <require>org.nuxeo.ecm.webapp.contentview.contrib</require>

  <extension target="org.nuxeo.ecm.platform.ui.web.ContentViewService" point="contentViews">

    <contentView name="document_content">

      <title>label.contentview.document_content</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>

      <coreQueryPageProvider>
        <property name="coreSession">#{documentManager}</property>
        <whereClause docType="AdvancedSearch">
          <predicate parameter="ecm:fulltext" operator="FULLTEXT">
            <field schema="advanced_search" name="fulltext_all"/>
          </predicate>
          <predicate parameter="dc:title" operator="FULLTEXT">
            <field schema="advanced_search" name="title"/>
          </predicate>
          <predicate parameter="dc:modified" operator="BETWEEN">
            <field schema="advanced_search" name="modified_min"/>
            <field schema="advanced_search" name="modified_max"/>
          </predicate>
          <fixedPart>
            ecm:parentId = ? AND ecm:isCheckedInVersion = 0 AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:currentLifeCycleState != 'deleted'
          </fixedPart>
        </whereClause>
        <parameter>#{currentDocument.id}</parameter>
        <sort column="dc:title" ascending="true"/>
        <pageSize>20</pageSize>
      </coreQueryPageProvider>

      <searchLayout name="document_content_filter"/>
      <showFilterForm>true</showFilterForm>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>true</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>#{currentDocument.id}</cacheKey>
      <cacheSize>10</cacheSize>

      <resultLayouts>
        <layout name="document_listing_ajax" title="document_listing" translateTitle="true"
         iconPath="/icons/document_listing_icon.png" showCSVExport="true" showPDFExport="true"/>
        <!-- On commente les layout de la vue compacte et de la vue par icones afin de les masquer dans
             l'interface utilisateur -->
        <!--
        <layout name="document_listing_ajax_compact_2_columns" title="document_listing_compact_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_compact_2_columns_icon.png"/>

        <layout name="document_listing_ajax_icon_2_columns" title="document_listing_icon_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"/>
        -->
      </resultLayouts>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST"/>

    </contentView>

  </extension>

</component>

Supprimer l'export excel et l'export PDF du contenu d'un répertoire

Pour supprimer l'export EXCEL et PDF d'un dossier vous devez modifier la définition du content view nommé document_content situé dans le point d'extension contentViews du composant org.nuxeo.ecm.platform.ui.web.ContentViewService  en indiquant la valeur false  pour les attributs showCSVExport  et showPDFExport dans définition du layout nommé document_listing_ajax.

Remarque : il existe aussi une content-view qui gère l'affichage dans les sections : section_content. Si vous voulez modifier l'affichage dans les sections, il faut aussi modifier cette content-view.

Éditez le fichier nommé contentviews-config.xml situé dans le dossier <racine_nuxeo>/templates/custom/config :

Bloc de code
langxml
<component name="org.esup.ecm.webapp.contentview.config">

  <require>org.nuxeo.ecm.webapp.contentview.contrib</require>

  <extension target="org.nuxeo.ecm.platform.ui.web.ContentViewService" point="contentViews">

    <contentView name="document_content">

      <title>label.contentview.document_content</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>

      <coreQueryPageProvider>
        <property name="coreSession">#{documentManager}</property>
        <whereClause docType="AdvancedSearch">
          <predicate parameter="ecm:fulltext" operator="FULLTEXT">
            <field schema="advanced_search" name="fulltext_all"/>
          </predicate>
          <predicate parameter="dc:title" operator="FULLTEXT">
            <field schema="advanced_search" name="title"/>
          </predicate>
          <predicate parameter="dc:modified" operator="BETWEEN">
            <field schema="advanced_search" name="modified_min"/>
            <field schema="advanced_search" name="modified_max"/>
          </predicate>
          <fixedPart>
            ecm:parentId = ? AND ecm:isCheckedInVersion = 0 AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:currentLifeCycleState != 'deleted'
          </fixedPart>
        </whereClause>
        <parameter>#{currentDocument.id}</parameter>
        <sort column="dc:title" ascending="true"/>
        <pageSize>20</pageSize>
      </coreQueryPageProvider>

      <searchLayout name="document_content_filter"/>
      <showFilterForm>true</showFilterForm>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>true</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>#{currentDocument.id}</cacheKey>
      <cacheSize>10</cacheSize>

      <resultLayouts>
        
        <!-- L'export en EXCEL et PDF est desactive en initialisant les attributs showCSVExport et showPDFExport a false -->
        <layout name="document_listing_ajax" title="document_listing" translateTitle="true"
         iconPath="/icons/document_listing_icon.png" showCSVExport="false" showPDFExport="false"/>

        <layout name="document_listing_ajax_compact_2_columns" title="document_listing_compact_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_compact_2_columns_icon.png"/>

        <layout name="document_listing_ajax_icon_2_columns" title="document_listing_icon_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"/>

      </resultLayouts>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST"/>

    </contentView>

  </extension>

</component>

Supprimer le filtre sur le contenu d'un dossier

Nuxeo-5.4.2 et supérieur apporte une multitude de nouveautés, le filtre sur le contenu des dossier en est une. Si vous souhaitez le désactiver vous devez modifier la définition du content view document_content situé dans le point d'extension contentViews du composant org.nuxeo.ecm.platform.ui.web.ContentViewService  en indiquant la la valeur de la balise showFilterForm  avec la valeur false.

Éditez le fichier nommé contentviews-config.xml situé dans le <racine_nuxeo>/templates/custom/config :

Bloc de code
langxml
<?xml version="1.0" encoding="UTF-8"?>

<component name="org.esup.ecm.webapp.contentview.config">

  <require>org.nuxeo.ecm.webapp.contentview.contrib</require>

  <extension target="org.nuxeo.ecm.platform.ui.web.ContentViewService" point="contentViews">

    <contentView name="document_content">

      <title>label.contentview.document_content</title>
      <translateTitle>true</translateTitle>
      <showTitle>false</showTitle>

      <coreQueryPageProvider>
        <property name="coreSession">#{documentManager}</property>
        <whereClause docType="AdvancedSearch">
          <predicate parameter="ecm:fulltext" operator="FULLTEXT">
            <field schema="advanced_search" name="fulltext_all"/>
          </predicate>
          <predicate parameter="dc:title" operator="FULLTEXT">
            <field schema="advanced_search" name="title"/>
          </predicate>
          <predicate parameter="dc:modified" operator="BETWEEN">
            <field schema="advanced_search" name="modified_min"/>
            <field schema="advanced_search" name="modified_max"/>
          </predicate>
          <fixedPart>
            ecm:parentId = ? AND ecm:isCheckedInVersion = 0 AND ecm:mixinType !=
            'HiddenInNavigation' AND ecm:currentLifeCycleState != 'deleted'
          </fixedPart>
        </whereClause>
        <parameter>#{currentDocument.id}</parameter>
        <sort column="dc:title" ascending="true"/>
        <pageSize>20</pageSize>
      </coreQueryPageProvider>

      <searchLayout name="document_content_filter"/>

      <!-- On met la valeur false pour la balise showFilterForm afin de masquer le formulaire de filtrage du
           contenu d'un dossier -->
      <showFilterForm>false</showFilterForm>

      <showPageSizeSelector>true</showPageSizeSelector>
      <useGlobalPageSize>true</useGlobalPageSize>
      <refresh>
        <event>documentChanged</event>
        <event>documentChildrenChanged</event>
      </refresh>
      <cacheKey>#{currentDocument.id}</cacheKey>
      <cacheSize>10</cacheSize>

      <resultLayouts>
        <layout name="document_listing_ajax" title="document_listing" translateTitle="true"
         iconPath="/icons/document_listing_icon.png" showCSVExport="true" showPDFExport="true"/>

        <layout name="document_listing_ajax_compact_2_columns" title="document_listing_compact_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_compact_2_columns_icon.png"/>

        <layout name="document_listing_ajax_icon_2_columns" title="document_listing_icon_2_columns"
         translateTitle="true" iconPath="/icons/document_listing_icon_2_columns_icon.png"/>

      </resultLayouts>

      <selectionList>CURRENT_SELECTION</selectionList>
      <actions category="CURRENT_SELECTION_LIST"/>

    </contentView>

  </extension>

</component>

Supprimer les actions d'export PDF et de consultation, la vue d'export et l'impression situés dans le fil d'Ariane

Pour supprimer l'export PDF et la vue d'export situés dans le fil d’Ariane il faut modifier l'attribut enabled des actions pdfExport et exportView définis dans le point d'extension actions du composant org.nuxeo.ecm.platform.actions.ActionService.

Créez un fichier nommé actions-config.xml situé dans le dossier <racine_tomcat>/templates/custom/config :

Bloc de code
langxml
<?xml version="1.0" encoding="UTF-8"?>
<component name="org.esup.ecm.webapp.seam.debug.action.config">


  <require>org.nuxeo.ecm.platform.actions</require>
  <require>org.nuxeo.ecm.webapp.seam.debug.action</require>
  <require>org.nuxeo.ecm.platform.io.web</require>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService" point="actions">

    <!-- Export PDF -->
    <action id="pdfExport" link="pdf" order="18" label="label.exportview.pdfExport" icon="/icons/pdf_export.png" enabled="false" />


    <!-- Vue d'export -->
    <action id="exportView" link="export" order="20" label="label.exportview" icon="/icons/export.png" enabled="false" />

    <!-- Impression (fil d'Ariane) -->
    <action icon="/icons/printer.gif" id="print" label="label.print" 
    link="#{restHelper.doPrint(WebcontainerThemeActions.defaultTheme)}" order="100" enabled="false" />
  
  </extension>

</component>

Supprimer l'accès à l'espace personnel

Supprimer l'affichage du lien en modifiant la valeur de l'attribut enabled de l'action SHOW_PERSONAL_WORKSPACE définie dans le point d'extension actions du composant org.nuxeo.ecm.platform.actions.ActionService permet de ne plus afficher le lien d'accès à l'espace personnel mais cela ne les désactive pas pour autant et ils restent accessible pour peu que l'on sache construire l'url. De la même façon, ces espaces seront accessibles au travers de tableaux de bord ou via des accès webdav ou cmis.

Pour désactiver complètement la fonctionnalité des espaces personnels, il faut supprimer les jars ci-dessous du répertoire <racine_tomcat>/nxserver/bundles/ :

  • nuxeo-platform-userworkspace-api-xxx.jar
  • nuxeo-platform-userworkspace-core-xxx.jar
  • nuxeo-platform-userworkspace-types-xxx.jar
  • nuxeo-platform-userworkspace-web-xxx.jar

Restreindre les fonctionnalités présentées par défaut dans Home (nuxeo > 5.4.1)

A partir de la version 5.4.2, Nuxeo a introduit la notion du "home" pour tous les utilisateurs (même anonymes) qui regroupe tout un tas de fonctionnalité dont certaines vous paraîtront peut utile, au moins pour les utilisateurs anonymes.

Le principe de restriction de ces fonctionnalités est toujours le même : il s'agit de créer un point d'extension actions-config.xml (à placer dans le répertoire config du template custom).

Ce fichier permettra de redéclarer le actions issues des composants originaux (à appeler dans une balise require pour que ce soit cette configuration qui soit prise en compte) en leur ajoutant des filtres restrictifs ou tout simplement en les désactivant.

A titre d'illustration,  vous trouverez ci-dessous deux exemples commentés.

Restreindre l'accès à l'onglet "Utilisateurs et groupes"

Comme vous avez pu le constater dans Nuxeo tous les utilisateurs (même l'utilisateur anonyme) ont accès à l'onglet "Utilisateurs et groupes". Nous allons donc vous indiquer la méthode à suivre afin d'en limiter l'accès. La méthode ci-dessous est générique, elle montre comment limiter l'accès aux administrateurs, a un ou plusieurs utilisateurs et/ou groupes. Vous devrez donc l'adapter à votre cas.

Créez ou éditez  le fichier nommé actions-config.xml situé dans le dossier <racine_nuxeo>/templates/custom/config.

Bloc de code
langxml
<?xml version="1.0" encoding="UTF-8"?>
<component name="org.esup.ecm.action.config">

<require>org.nuxeo.ecm.user.center.actions</require>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService" point="actions">

    <!-- Rectriction d'acces a l'onglet utilisateurs et groupes -->
    <action id="UsersGroupsHome" link="user_center_fragment.xhtml" label="command.manageMembers"
     icon="/icons/users_groups.png" order="60" enabled="true">



      <category>USER_CENTER</category>
      
      <!-- filtre d'activation initial -->
      <filter-id>not_readonly</filter-id>


      <!-- L'onglet ne sera pas affiche pour l'utilisateur anonyme -->
      <filter-id>not_anonymous</filter-id>


      <!-- Filtre de restriction personnalise -->
      <filter id="users_group_home_restricted_access">

        <!-- Affichage du filtre si l'utilisateur est administrateur -->
        <rule grant="true">
          <condition>#{userSession.administrator}</condition>
        </rule>

        <!-- Affichage si l'utilisateur fait partie du groupe XXX -->
        <rule grant="true">
          <condition>#{userSession.currentNuxeoPrincipal.allGroups.contains("XXX")}</condition>
        </rule>

        <!-- Affichage si l'identifiant de l'utilisateur correspond a YYY -->
        <rule grant="true">
          <condition>#{userSession.currentUser.name.equals("YYY")}</condition>
        </rule>
      </filter>
    </action>

  </extension>

</component>

Supprimer l'onglet applications autorisées

Pour supprimer l'onglet applications autorisées situés dans le dashboard de l'utilisateur vous devez désactiver l'action AuthorizedApplication.

Créez ou éditez  le fichier nommé actions-config.xml situé dans le dossier <racine_tomcat>/templates/custom/config.

Bloc de code
<?xml version="1.0" encoding="UTF-8"?>
<component name="org.esup.ecm.action.config">
  <require>org.nuxeo.ecm.user.center.oauth.actions</require>
    <extension target="org.nuxeo.ecm.platform.actions.ActionService" point="actions">
    <!-- Suppression de l'onglet Applications autorisées situe dans le dashboard de l'utilisateur -->
    <action id="AuthorizedApplication" enabled="false" />
   </extension>
</component>