20
collective.local.* packages Light components for user management delegation Thomas Desvenain (Ecréall),PLOG 2013 [email protected] https://github/tdesvenain

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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