Sounds like the problem is more at the plugin design level. Why is PAS
trying to set properties for a plugin that does not support them?
Really an error should not be happening in this situation.
To me it seems that either the interface should require the plugin to
implement mutable properties (this should be part of the interface
compliance testing) or PAS should inquire via the interface as to
whether the properties are mutable and behave correctly.
It seem that the former is being assumed and that LDAPMultiPlugins are
not compliant with the plugin interface requirements (as implemented).
Wichert Akkerman wrote:
The error handling in PlonePAS for user registration is quite
suboptimal: for all errors it just says "The login name you selected is
already in use or is not valid".
For plone.org this causes us to get users that are only created
partially: they are created in a LDAP database, but since
LDAPMultiPlugins does not implement mutable property sheets yet setting
the user properties fails. So we have a new user, but without any
properties. The PlonePAS registry.cpy catches the exception raised by
the property setting code and tells the user that the login name is
already in use or invalid, which is not true.
I'm not sure what the best way to fix this is. Either we should rollback
user creation if it fails halfway (tricky) or add some new exception
types so we can distinguish between fatal errors and non-fatal ones.
Zope-PAS mailing list