Récuperer des informations personnalisées sur l'utilisateur connecté

Bonjour,
J’ai rajouté 2 nouveaux attributs à l’objet User pour faciliter la gestion de droits.
J’aimerais pouvoir récupérer ces 2 informations à tout moment pour appliquer un filtrage sur certains objets sans avoir à requeter la base à chaque fois.
Quelle est la bonne stratégie ?
Merci d’avance.

Le “à chaque fois” ne devrait se faire qu’une fois au début de session dans le grant hook postLoadGrant dans lequel vous pouvez, par exemple, stocker ces infos custom dans un ou des params systèmes de session.

C’est, personnellement, ce que je fais dans ce genre de cas de figure.

j’ai tenté cette piste mais malheureusement je n’ai pas pu récupérer les valeurs des colonnes de l’utilisateur connecté dans le postload
J’ai utilisé ce bout de code
ObjectDB usr = g.getTmpObject(“User”);
usr.select(g.getUserUniqueId());
usr.getFieldValue(“custom”));
pour récupérer les infos de mon utilisateur mais les valeurs ne remontent pas alors que c’est correctement rempli en base

Je ne vois pas de raison de ne pas récupérer les valeurs de ces attributs, en tout cas s’ils sont bien paramétrés sur l’objet User. Mais bon au pire vous faites une requête SQL ad hoc comme dans l’exemple ci-dessous (celui-ci utilise une logique de filtrage utilisateur plutôt qu’un param système)

package com.simplicite.commons.MyModule;

import com.simplicite.util.AppLog;
import com.simplicite.util.Grant;
import com.simplicite.util.Tool;

/**
 * Grant Hooks
 */
public class GrantHooks extends  com.simplicite.util.GrantHooksInterface {
	public static void postLoadGrant(Grant g) {
		if (!g.isPublic() && !g.isDesigner() && !g.isSystem()) {
			// Filtrage sur l'agence de rattachement
			String agenceId = g.simpleQuery("select usr_agc_id from m_user where row_id = " + g.getUserId());
			if (!Tool.isEmpty(agenceId)) {
				g.getUserFilters().reset();
				g.getUserFilters().addFieldFilter("agcId", agenceId, false, false);
				AppLog.info(GrantHooks.class, "postLoadGrant", "Filtre agence positionné pour ID: " + agenceId, g);
			}
		}
	}
}

Merci beaucoup
ça a fonctionné, le seul hic était que le userFilters était null, j’ai dû l’initialiser
Je ne sais pas si c’est normal

Le user filter est un mécanisme de filtrage global, il faut le configurer (ex: lui ajouter les attributs ad hoc) pour répondre à ses besoins de filtrage global avant de l’utiliser