Rendre les recherches publiques habilitables ou a minima pouvoir masquer des recherches prédéfinies selon le profil de l'utilisateur courant

Version

5.1.38

Description

Est-il possible de masquer certaines recherches prédéfinies comme “publique” selon le profil de l’utilisateur ?

Le besoin le plus urgent consiste à pouvoir a minima le faire par code.
Mais serait-il envisageable de remplacer le flag “publique” O/N par un enum “privée/habilitée/publique” (le fonctionnement d’une recherche “habilitée” étant similaire à la gestion des actions avec un hook permettant de surcharger comme isActionEnabled) ? (pas d’urgence particulière mais j’ai déjà pas mal de cas d’usage envisagés car le métier sollicite beaucoup les équipes pour réaliser des extractions ou avoir du support pour appliquer des filtres complexes).

NB: j’ai déjà mis en œuvre un mécanisme permettant de définir des mots-clé “[RULEXXX]” dans les recherches prédéfinies qui sont remplacés dynamiquement par la searchSpec afférente dans le preSearch. Il ne me manque plus qu’à scoper un peu mieux les recherches proposées selon le profil de l’utilisateur courant.

Je me répond à moi-même…

J’ai trouvé ça dans le javadoc qui fait exactement ce dont j’ai besoin à court terme :
image

	@Override
	public java.util.List<PredefinedSearch> getPredefinedSearches() {
		ArrayList<PredefinedSearch> grantedSearches = new ArrayList<PredefinedSearch>();
		ArrayList<PredefinedSearch> predefSearches = (ArrayList<PredefinedSearch>)super.getPredefinedSearches();
		if (predefSearches != null) {
			for (int i=0; i<predefSearches.size(); i++) {
				PredefinedSearch predefSearch = predefSearches.get(i);
				if ([condition vérifiée]) grantedSearches.add(predefSearch);
	        }
		}
		return grantedSearches;
	}

Je restreint du coup ma feature request (pas urgente) à pouvoir sous-traiter au socle un mode d’habilitation (sans code) des recherches via une configuration d’enum “privée/habilitée/publique” + groupes habilités :innocent: :hugs:

Bonjour Bruno,

Bien trouvé, ces hooks servent à éviter de paramétrer les cas compliqués d’habilitation.

Pour mémoire ça date de ce besoin :

L’évolution est en cours en 5.4 au sein d’un besoin plus général sur les autorisations.

Nouvel objet Permission qui permet d’autoriser (ou interdire) des groupes sur des entités, via un champ objet pouvant pointer sur :

Anciens droits migrés :

  • Print template
  • Crosstab
  • Shortcut
  • Constraint
  • Model template

Nouvelles autorisations :

  • Predef search (public + permitted)
  • Treeview
  • Place map
  • Agenda
  • Timesheet

Fin des fonctions pour :

  • Domain
  • External object

On va également pouvoir utiliser cette nouvelle fonctionnalité pour surcharger les droits par groupe sur les Attributs d’objet (visible/modifiable/obligatoire) sans avoir besoin de coder ou créer des contraintes habilités.