![Page 1: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/1.jpg)
collective.local.* packagesLight components for user
management delegation
Thomas Desvenain (Ecréall),PLOG [email protected]
https://github/tdesvenain
![Page 2: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/2.jpg)
A Workspace in Plone
A place where members share data with a certain level of self-management
Easy to transpose into Plone:
A folder where allowed users can share (and edit) contents and give rights to other people.
Thomas Desvenain (Ecréall) 2/20 PLOG 2013 Sorrento
![Page 3: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/3.jpg)
A Workspace in PlonePlone is good at
➢ Upload and organize contents our own way➢ Grant users read and write access➢ Grant sharing privileges to locally privileged users (a
« Workspace manager » or « Can share » role)➢ Providing views restricted to the content of the
workspace (navigation portlet, etc)➢ Much more
Plone is not so good at:➢ Locally delegating user management➢ Communicate with users we share documents with
Thomas Desvenain (Ecréall) 3/20 PLOG 2013 Sorrento
![Page 4: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/4.jpg)
What we can do with collective.local.* products
➢ Locally delegate user creation with collective.local.adduser➢ Delegate group management with c.l.addgroup➢ Display workspace members listing with c.l.userlisting ➢ Send content by mail to other members with c.l.sendto➢ Display group members in sharing table with c.l.deploygroups➢ Having this in a set-up bundle with c.l.workspace
We'll focus on collective.local.adduser and collective.local.addgroup
Thomas Desvenain (Ecréall) 4/20 PLOG 2013 Sorrento
![Page 5: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/5.jpg)
Technical approach
Plone does almost all the job. We just need additional feature wich have to fit with any environment without altering it.
No specific content type➢ There is no Workspace, just Workspace features for
folders➢ Folder just has to provide an interface to get a feature
Thomas Desvenain (Ecréall) 5/20 PLOG 2013 Sorrento
![Page 6: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/6.jpg)
Technical approach
Plone does almost all the job. We just need additional feature wich have to fit with any environment without altering it.
No specific content type➢ There is no Workspace, just Workspace features for
folders➢ Folder just has to provide an interface to get a feature
Thomas Desvenain (Ecréall) 6/20 PLOG 2013 Sorrento
![Page 7: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/7.jpg)
Technical approach
No specific role➢ Workspace manager can be a set-up of an existing role➢ No role for Workspace member.
Members are just all users with local roles➢ No member list stored in any way➢ Can theoretically be mixed with any other workspace
system (collective.groupspaces,, collective.team...)Use existing Plone permissions as most as possible
Thomas Desvenain (Ecréall) 7/20 PLOG 2013 Sorrento
![Page 8: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/8.jpg)
Technical approach
No dependency➢ Each feature is entirely independent
No setup➢ No workflow or security settings (excepted in
c.l.workspace)➢ configure.zcml that setups feature for default folders➢ minimal.zcml that sets up nothing
Using Plone views as most as possible
Thomas Desvenain (Ecréall) 8/20 PLOG 2013 Sorrento
![Page 9: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/9.jpg)
collective. local.adduser
The context:➢ Dozens of workspaces➢ Several new users / week➢ One overwhelmed site administrator➢ Trusted workspace managers
Thomas Desvenain (Ecréall) 9/20 PLOG 2013 Sorrento
![Page 10: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/10.jpg)
collective. local.adduser
The problem:Create a user + give local access: not a fluent process
➢ Workspace manager asks Admin for user creation,➢ Wait it is done...,➢ Give the access,➢ Notify the user.
(When user receives the email, he has no right yet. « This doesn't work ! »)
=> Admin often does the whole job
Thomas Desvenain (Ecréall) 10/20 PLOG 2013 Sorrento
![Page 11: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/11.jpg)
collective. local.adduser
Thomas Desvenain (Ecréall) 11/20 PLOG 2013 Sorrento
![Page 12: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/12.jpg)
collective. local.adduser
Thomas Desvenain (Ecréall) 12/20 PLOG 2013 Sorrento
![Page 13: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/13.jpg)
collective. local.adduser
collective.local.adduser allows a workspace manager to create user➢ Users are created globally➢ Roles are setup only on workspace
requirements:➢ Workspace manager locally needs « Manage Users »➢ Workspace folder implements an interface collective.local.adduser.interfaces.IAddUser
Thomas Desvenain (Ecréall) 13/20 PLOG 2013 Sorrento
![Page 14: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/14.jpg)
collective.local.addgroup
The context:➢ Workspaces with dozens of members
The problems:➢ Sharing page turned unreadable➢ Setting a role was critically slow
(reindexObjectSecurity...)
=> Delegating group creation became essential
Thomas Desvenain (Ecréall) 14/20 PLOG 2013 Sorrento
![Page 15: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/15.jpg)
collective.local.addgroup
Thomas Desvenain (Ecréall) 15/20 PLOG 2013 Sorrento
![Page 16: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/16.jpg)
collective.local.addgroup
Thomas Desvenain (Ecréall) 16/20 PLOG 2013 Sorrento
![Page 17: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/17.jpg)
c.l.adduser + c. l.addgroup
Thomas Desvenain (Ecréall) 17/20 PLOG 2013 Sorrento
![Page 18: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/18.jpg)
collective.local.addgroup
collective.local.addgroup allows a workspace manager to create groups➢ Similar behaviour than collective.local.adduser
requirements:➢ Workspace manager locally needs « Manage Users »➢ Workspace folder implements an interface collective.local.adduser.interfaces.IAddNewGroup
Thomas Desvenain (Ecréall) 18/20 PLOG 2013 Sorrento
![Page 19: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/19.jpg)
c.l.adduser + c. l.addgroup
Thomas Desvenain (Ecréall) 19/20 PLOG 2013 Sorrento
![Page 20: Introduction to collective.local.* packages at the Plone Open Garden 2013](https://reader033.vdocuments.site/reader033/viewer/2022060110/555b8307d8b42acd238b45d3/html5/thumbnails/20.jpg)
collective.local.*
Thank you for your attention
[email protected]@gmail.com
http://github.com/tdesvenainhttp://github.com/vincentfretin
Thomas Desvenain (Ecréall) 20/20 PLOG 2013 Sorrento