[HASRESPONSIBILITY:group]

4.0
[HASRESPONSIBILITY:group]
0.0 0
Tags: #<Tag:0x00007f682819e078>

#1

Bonjour,
si je met [HASRESPONSIBILITY:group] en considérant que j’ai un groupe ‘group’ dans un filtre sql, vas-t’il être compris comme un booléen ?
Quand j’affiche la requete sql après (le defaultSearchSpec de mon objet) j’ai :
select […]
where (’’)

J’aimerai afficher des enregistrements d’objet en liste en fonction des responsabilités de l’utilisateur sans forcément passer par du code.

Merci d’avance


#2

Non ce type de tag n’est pas préprocessé dans les expressions SQL paramétrées comme l’attribut searchspec.
Il faut écrire le bout de SQL qui va bien (genre exixts(select 1 from m_resp r , m_group g where ...) mais ça peut rapidement devenir complexe

La bonne approche pour les search specs complexes notamment celles liées aux droits du user est plutôt de valoriser la default search spec dans le postLoad de votre objet en testant dans quel cas vous êtes avec le user considéré, genre

if (this.getGrant().hasResponsibility("MY_GROUP") {
    this.setDefaultSearchSpec("...");
else
    (...)

Ce sera plus lisible et plus maintenable


#3

PS: C’est le type d’exemple donné dans la doc https://www.simplicite.io/resources/documentation/01-core/businessobject-code-hooks.md au § “Post load hook”