Introduction to collective.local.* packages at the Plone Open Garden 2013

2,485 views

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,485
On SlideShare
0
From Embeds
0
Number of Embeds
898
Actions
Shares
0
Downloads
10
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Introduction to collective.local.* packages at the Plone Open Garden 2013

  1. 1. collective.local.* packagesLight components for usermanagement delegationThomas Desvenain (Ecréall),PLOG 2013thomasdesvenain@ecreall.comhttps://github/tdesvenain
  2. 2. A Workspace in PloneA place where members share data with a certainlevel of self-managementEasy 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
  3. 3. 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 theworkspace (navigation portlet, etc)➢Much morePlone is not so good at:➢Locally delegating user management➢Communicate with users we share documents withThomas Desvenain (Ecréall) 3/20 PLOG 2013 Sorrento
  4. 4. What we can do withcollective.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.workspaceWell focus oncollective.local.adduser and collective.local.addgroupThomas Desvenain (Ecréall) 4/20 PLOG 2013 Sorrento
  5. 5. Technical approachPlone does almost all the job. We just need additionalfeature wich have to fit with any environment withoutaltering it.No specific content type➢There is no Workspace, just Workspace features forfolders➢Folder just has to provide an interface to get a featureThomas Desvenain (Ecréall) 5/20 PLOG 2013 Sorrento
  6. 6. Technical approachPlone does almost all the job. We just need additionalfeature wich have to fit with any environment withoutaltering it.No specific content type➢There is no Workspace, just Workspace features forfolders➢Folder just has to provide an interface to get a featureThomas Desvenain (Ecréall) 6/20 PLOG 2013 Sorrento
  7. 7. Technical approachNo 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 workspacesystem (collective.groupspaces,, collective.team...)Use existing Plone permissions as most as possibleThomas Desvenain (Ecréall) 7/20 PLOG 2013 Sorrento
  8. 8. Technical approachNo dependency➢Each feature is entirely independentNo setup➢No workflow or security settings (excepted inc.l.workspace)➢configure.zcml that setups feature for default folders➢minimal.zcml that sets up nothingUsing Plone views as most as possibleThomas Desvenain (Ecréall) 8/20 PLOG 2013 Sorrento
  9. 9. collective.local.adduserThe context:➢Dozens of workspaces➢Several new users / week➢One overwhelmed site administrator➢Trusted workspace managersThomas Desvenain (Ecréall) 9/20 PLOG 2013 Sorrento
  10. 10. collective.local.adduserThe 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 doesnt work ! »)=> Admin often does the whole jobThomas Desvenain (Ecréall) 10/20 PLOG 2013 Sorrento
  11. 11. collective.local.adduserThomas Desvenain (Ecréall) 11/20 PLOG 2013 Sorrento
  12. 12. collective.local.adduserThomas Desvenain (Ecréall) 12/20 PLOG 2013 Sorrento
  13. 13. collective.local.addusercollective.local.adduser allows a workspace manager tocreate user➢Users are created globally➢Roles are setup only on workspacerequirements:➢Workspace manager locally needs « Manage Users »➢Workspace folder implements an interfacecollective.local.adduser.interfaces.IAddUserThomas Desvenain (Ecréall) 13/20 PLOG 2013 Sorrento
  14. 14. collective.local.addgroupThe context:➢Workspaces with dozens of membersThe problems:➢Sharing page turned unreadable➢Setting a role was critically slow(reindexObjectSecurity...)=> Delegating group creation became essentialThomas Desvenain (Ecréall) 14/20 PLOG 2013 Sorrento
  15. 15. collective.local.addgroupThomas Desvenain (Ecréall) 15/20 PLOG 2013 Sorrento
  16. 16. collective.local.addgroupThomas Desvenain (Ecréall) 16/20 PLOG 2013 Sorrento
  17. 17. c.l.adduser + c.l.addgroupThomas Desvenain (Ecréall) 17/20 PLOG 2013 Sorrento
  18. 18. collective.local.addgroupcollective.local.addgroup allows a workspace manager tocreate groups➢Similar behaviour than collective.local.adduserrequirements:➢Workspace manager locally needs « Manage Users »➢Workspace folder implements an interfacecollective.local.adduser.interfaces.IAddNewGroupThomas Desvenain (Ecréall) 18/20 PLOG 2013 Sorrento
  19. 19. c.l.adduser + c.l.addgroupThomas Desvenain (Ecréall) 19/20 PLOG 2013 Sorrento
  20. 20. collective.local.*Thank you for your attentionthomas.desvenain@gmail.comvincent.fretin@gmail.comhttp://github.com/tdesvenainhttp://github.com/vincentfretinThomas Desvenain (Ecréall) 20/20 PLOG 2013 Sorrento

×