[spip-dev] autorisations

Bonjour à tous,

J'ai un comportement étrange dans la création des autorisations (dans un
plugin)

si je déclare cette fonction d'autorisation :
function autoriser_devis_creer_dist($faire, $type, $id, $qui, $opt){
  return false
}

elle ne fonctionne pas : c'est à dire spip ne l'utilise pas :
[(#AUTORISER{creer,devis) coucou]
"coucou" toujours affiché

Si je remplace "devis" par totodevis => cela ne fonctionne toujours pas
Si je remplace "devis" par devistoto => cela fonctionne

Y aurait il des autorisations interdites ?

Non.

cependant, depuis SPIP 3.0, le $type est considéré par défaut comme étant un objet éditorial, et applique la fonction objet_type() dessus, de sorte que ton 'devis' se transforme en 'devi' (comportement par défaut de objet_type, même si cet objet n'est pas déclaré).

Pour éviter ce comportement, un _ est fait pour, cela est alors considéré comme une page : autoriser('creer', '_devis').

Note également que tout espace est enlevé 'devis_toto' ou '_devis_toto' créera un $type 'devistoto'.

MM.

Bonjour à tous,

J'ai un comportement étrange dans la création des autorisations (dans un
plugin)

si je déclare cette fonction d'autorisation :
function autoriser_devis_creer_dist($faire, $type, $id, $qui, $opt){
   return false
}

elle ne fonctionne pas : c'est à dire spip ne l'utilise pas :
[(#AUTORISER{creer,devis) coucou]
  "coucou" toujours affiché

Si je remplace "devis" par totodevis => cela ne fonctionne toujours pas
Si je remplace "devis" par devistoto => cela fonctionne

Y aurait il des autorisations interdites ?

Non.

cependant, depuis SPIP 3.0, le $type est considéré par défaut comme étant un objet éditorial, et applique la fonction objet_type() dessus, de sorte que ton 'devis' se transforme en 'devi' (comportement par défaut de objet_type, même si cet objet n'est pas déclaré).

Il me semble me souvenir /de mes exploration de la Fabrique/ qu'une option de declaration de l'objet permettait de lui indiquer un alias, qui échapperait au traitement de "singulier" des objets SPIP ?

Oui oui, on peut indiquer à SPIP qu'un type est 'devis' même au singulier. C'est pas spécifique à la fabrique cela dit.

MM.

Merci Marcimat !