[Zope-CMF] Extending FTI.isConstructionAllowed
Tres Seaver
tseaver at palladion.com
Fri May 29 09:56:16 EDT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Wichert Akkerman wrote:
> I have a use case where I need to put additional restrictions on object
> creation, in particular I need to restrict the maximum depth of items
> inside of a container of a specific type. The ideal place to put such a
> restriction seems to be the isConstructionAllowed method on the FTI.
> Currently this method is not very extensible, which leads to complicated
> code in various FTI types.
>
> I am considering to add an extension point here, something like this:
>
> class ITypeConstructionFilter(Interface):
> def __init__(fti, container):
> """Adapt on the FTI of the object being created and the target
> container"""
>
> def allowed():
> """Check if construction is allowed."""
>
>
> current checks such as the workflow check that was added in CMF 2.2, or
> the type constraint logic Plone has in ATContentTypes could be moved to
> such an adapter. The standard isConstructionAllowed method could then
> query all registered adapters to check if construction should be possible.
>
> Does this sound sensible?
I'm not sure about querying all adapters: I think it would be clearer
to query the one adapter whose name corresponds to the type name of the
FTI (the "query all" case leads to tricky / emergent behavior).
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFKH+mA+gerLs4ltQ4RAhG7AKDZsLKNRVUHBfLoq/tbGsqU50TVJgCgr3Np
06Ck6T4Xyvru7WKgm8vUjbs=
=2I0k
-----END PGP SIGNATURE-----
More information about the Zope-CMF
mailing list