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

...

Nuxeo apporte une gamme de fonctionnalité très (parfois trop) importante. Il est parfois peut s'avérer nécessaire d'en simplifier l'utilisation. Vous trouverez ici différentes techniques vous permettant de faciliter son utilisationrestreindre 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 le un fichier directorytreemanager-config.xml dans le dossier nuxeo-dm-5.4.2-tomcatdossier <racine_nuxeo>/templates/custom/config et éditez le :

nuxeo-dm-5.4.2-tomcat/templates/custom/config/directorytreemanager-config.xml

Bloc de code
langxml
Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.nuxeoesup.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>
Remarque

Vous devez redémarrer votre instance de Nuxeo pour appliquer les modifications effectuées

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   dossier nuxeo-dm-5.4.2-tomcat <racine_nuxeo>/templates/custom/config et éditez le :

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

Vous devez redémarrer votre instance de Nuxeo pour appliquer les modifications effectuées
Bloc de code
langxml
<?xml version="1.0"?>
<component name="org.nuxeoesup.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>
Remarque

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.

Créez un fichier nommé contentviews-config.xml dans le dossier nuxeo-dm-5.4.2-tomcat/templates/custom/config et éditez le :

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>nuxeo-dm-5.4.2-tomcat/templates/custom/config /contentviews-config.xml et éditez le :

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

<component name="org.nuxeoesup.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>
Remarque
Vous devez redémarrer votre instance de Nuxeo pour appliquer les modifications effectuées

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.

 Éditez le fichier nommé contentviews-config.xml situé dans le dossier nuxeo-dm-5.4.2-tomcat/templates/custom/config :

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>nuxeo-dm-5.4.2-tomcat/templates/custom/config /contentviews-config.xml  :

Bloc de code
langxml
<component name="org.nuxeoesup.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>
Remarque

Appliquez vos modifications en redémarrant votre instance de Nuxeo.

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 dossier nuxeo-dm-5.4.2-tomcat<racine_nuxeo>/templates/custom/config :

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

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

<component name="org.nuxeoesup.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>

Appliquez vos modifications en redémarrant votre instance de Nuxeo.

Supprimer les actions d'export PDF et de consultation

...

, la vue d'export et l'impression situés dans le

...

fil d'Ariane

Image RemovedImage Added

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

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

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

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

 
  <require>org.nuxeo.ecm.webapp.seam.debug.action<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">
      <category>DOCUMENT_UPPER_ACTION</category>
      enabled="false" />


    <!-- Desactivation de cette option a l'aide du filtre Vue d'export -->
      <filter-id>disable</filter-id>
    </action>


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

    <!-- DesactivationImpression de cette option a l'aide du filtre --(fil d'Ariane) -->
      <filter-id>disable</filter-id>
    </action>


<action<action icon="/icons/printer.gif" id="print" label="label.print" 
    link="#{restHelper.doPrint(WebcontainerThemeActions.defaultTheme)}" order="100" labelenabled="label.printfalse" icon="/icons/printer.gif">
<category>DOCUMENT_UPPER_ACTION_BLANK_TARGET</category>
</action>
  
  </extension>

  <extension target="  
  </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"

Image Added

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 " point="filters">

    <!-- Creation d'un filtre dont la condition sera toujours fausse -->
    <filter id="disable">  <filter-id>not_readonly</filter-id>


      <rule grant="false"/>
    </filter>
    
  </extension>

</component>
Remarque

Appliquez vos modifications en redémarrant votre instance de Nuxeo.

Supprimer l'accès à l'espace personnel

Image Removed

Il peut être parfois utile de supprimer l'accès à l'espace personnel de l'utilisateur dans Nuxeo (ex: Si vous souhaitez favoriser l'utilisation de leur partage SAMBA). Pour en interdire l'accès, il faut modifier la condition d'activation de l'action SHOW_PERSONAL_WORKSPACE définie dans le point d'extension actions du composant org.nuxeo.ecm.platform.actions.ActionService.

Créez ou éditez  le fichier nommé actions-config.xml situé dans le dossier nuxeo-dm-5.4.2-tomcat/templates/custom/config.

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

 <!-- 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

Image Added

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>
   
Bloc de code
langxml
<?xml version="1.0" encoding="UTF-8"?>
<component name="org.nuxeo.ecm.webapp.seam.debug.action.config">

  <require>org.nuxeo.ecm.platform.userworkspace.actions<require>

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

    <!-- Espace personnel -->
    <action id="SHOW_PERSONAL_WORKSPACE" link="#{userWorkspaceManagerActions.navigateToCurrentUserPersonalWorkspace}"
     enabled="true" label="command.user.personal.workspace" icon="/icons/show_personal_workspace.gif" order="61">
      <category>USER_MENU_ACTIONS</category>
      <!-- Desactivation de cette option a l'aide du filtre -->
      <filter-id>disable</filter-id>
    </action>

  </extension>

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

      <!-- CreationSuppression de dl'unonglet Applications filtreautorisées dontsitue ladans conditionle seradashboard toujoursde faussel'utilisateur -->
    <action  <filter id="disableAuthorizedApplication">
      <rule grant enabled="false" />
      </filter>

  </extension>

</component>