I do not get the point here. We have a working addon here since years: membrane and its ecosystem.
Lets go through it, step by step:
Plone users need to be a content type so that they can undergo workflow.
Currently, users either self-register and then are fully a member, or an admin or other designated role adds them. What is needed are users who self-register and then go through an approval or other workflow before becoming a member.
Users also could then be put in other states (like suspended, or moderated, etc).
membrane has enabled and disabled. With custom workflows all other funny states are possible.
Users are the most basic of content to a CMS. They should be treated as content.
I disagree. This is one way to deal with users. It is a rare use case in our customer projects (in only about 10% of the projects). Users are coming in from different sources, LDAP, SAML2, OAuth2, …
(Remember Python 1.x when the basic data types were not actual Python types but something more analogous to Java “primitives?” I feel that the current situation in Plone with users is similarly primitive and inflexible.)”
This analogy is so wrong. Also, the PlugableAuthenticationService (PAS) is very pluggable, extremly flexible (as the name suggests) and the opposite of primitive. I wrote a bunch of PAS-Plugins and its easy to plugin anything. And if you want to have contentish users, plug in membrane.
Membrane and a bunch of other addons are providing us with a bunch of OOTB possibilities one can use in their site.
I strongly oppose to make a contentish user part of Plone core. Its just one use-case.
The proposal does not make any sense to me. I would moreover propose to take membrane and make it a first class addon for Plone. The current state is - as Peter wrote - still room for improvement
Tasks - off head:
- We have Products.membrane and dexterity.membrane. This could be merged.
- Archetypes need to be ripped out as an optional feature.
- Then membrane has its own catalog. Thats questionable if this makes sense. At time of writing people thought its a good idea to not pollute the main catalog. I doubt that this is an advantage.
- The whole codebase is evolutionary grown and could need some refactoring.
- With dexterity we could think about a consistent TTW story - though now TTW users are is already possible afaik.