SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
collective.local.* packages
Light components for user
management delegation
Thomas Desvenain (Ecréall),PLOG 2013
thomasdesvenain@ecreall.com
https://github/tdesvenain
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
A Workspace in Plone
Plone 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
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
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
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
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
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
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
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
collective.local.adduser
Thomas Desvenain (Ecréall) 11/20 PLOG 2013 Sorrento
collective.local.adduser
Thomas Desvenain (Ecréall) 12/20 PLOG 2013 Sorrento
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
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
collective.local.addgroup
Thomas Desvenain (Ecréall) 15/20 PLOG 2013 Sorrento
collective.local.addgroup
Thomas Desvenain (Ecréall) 16/20 PLOG 2013 Sorrento
c.l.adduser + c.l.addgroup
Thomas Desvenain (Ecréall) 17/20 PLOG 2013 Sorrento
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
c.l.adduser + c.l.addgroup
Thomas Desvenain (Ecréall) 19/20 PLOG 2013 Sorrento
collective.local.*
Thank you for your attention
thomas.desvenain@gmail.com
vincent.fretin@gmail.com
http://github.com/tdesvenain
http://github.com/vincentfretin
Thomas Desvenain (Ecréall) 20/20 PLOG 2013 Sorrento

Weitere ähnliche Inhalte

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

Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Exove
 
Drupal theming training
Drupal theming trainingDrupal theming training
Drupal theming trainingdropsolid
 
Improving Domino Designer
Improving Domino DesignerImproving Domino Designer
Improving Domino DesignerKathy Brown
 
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer ExperienceConnect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experiencepanagenda
 
Jenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetupJenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetupCloudBees
 
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamMoving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamPVS-Studio
 
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamMoving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamSofia Fateeva
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Moodle at scale why assigning a role can cause a catastrophe
Moodle at scale   why assigning a role can cause a catastropheMoodle at scale   why assigning a role can cause a catastrophe
Moodle at scale why assigning a role can cause a catastrophesammarshall_ou
 
dropbox by ramanjeet lamba
dropbox by ramanjeet lambadropbox by ramanjeet lamba
dropbox by ramanjeet lamba100580308717
 
Contextual - Intranet Shoot-out: Plone vs. SharePoint
Contextual - Intranet Shoot-out:  Plone vs. SharePointContextual - Intranet Shoot-out:  Plone vs. SharePoint
Contextual - Intranet Shoot-out: Plone vs. SharePointKen Wasetis
 
Containerization (docker)
Containerization (docker)Containerization (docker)
Containerization (docker)RadhikaKachhawa
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentMediacurrent
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'tsPaolo Tonin
 
Deep dive - Concourse CI/CD and Pipelines
Deep dive  - Concourse CI/CD and PipelinesDeep dive  - Concourse CI/CD and Pipelines
Deep dive - Concourse CI/CD and PipelinesSyed Imam
 

Ähnlich wie Introduction to collective.local.* packages at the Plone Open Garden 2013 (20)

Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013Drupal Seminar May 15th, 2013
Drupal Seminar May 15th, 2013
 
Let me introduce you: DOTS
Let me introduce you: DOTSLet me introduce you: DOTS
Let me introduce you: DOTS
 
Users guide
Users guideUsers guide
Users guide
 
Drupal theming training
Drupal theming trainingDrupal theming training
Drupal theming training
 
Improving Domino Designer
Improving Domino DesignerImproving Domino Designer
Improving Domino Designer
 
Connect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer ExperienceConnect2014 BP205: Improving Your IBM Domino Designer Experience
Connect2014 BP205: Improving Your IBM Domino Designer Experience
 
Jenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetupJenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetup
 
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamMoving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
 
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development teamMoving from CruiseControl.NET to Jenkins in the PVS-Studio development team
Moving from CruiseControl.NET to Jenkins in the PVS-Studio development team
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Moodle at scale why assigning a role can cause a catastrophe
Moodle at scale   why assigning a role can cause a catastropheMoodle at scale   why assigning a role can cause a catastrophe
Moodle at scale why assigning a role can cause a catastrophe
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
dropbox by ramanjeet lamba
dropbox by ramanjeet lambadropbox by ramanjeet lamba
dropbox by ramanjeet lamba
 
Contextual - Intranet Shoot-out: Plone vs. SharePoint
Contextual - Intranet Shoot-out:  Plone vs. SharePointContextual - Intranet Shoot-out:  Plone vs. SharePoint
Contextual - Intranet Shoot-out: Plone vs. SharePoint
 
Containerization (docker)
Containerization (docker)Containerization (docker)
Containerization (docker)
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'ts
 
Deep dive - Concourse CI/CD and Pipelines
Deep dive  - Concourse CI/CD and PipelinesDeep dive  - Concourse CI/CD and Pipelines
Deep dive - Concourse CI/CD and Pipelines
 
Docker 101
Docker 101 Docker 101
Docker 101
 

Kürzlich hochgeladen

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 

Kürzlich hochgeladen (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

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

  • 1. collective.local.* packages Light components for user management delegation Thomas Desvenain (Ecréall),PLOG 2013 thomasdesvenain@ecreall.com https://github/tdesvenain
  • 2. 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
  • 3. A Workspace in Plone Plone 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 13. 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
  • 14. 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
  • 17. c.l.adduser + c.l.addgroup Thomas Desvenain (Ecréall) 17/20 PLOG 2013 Sorrento
  • 18. 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
  • 19. c.l.adduser + c.l.addgroup Thomas Desvenain (Ecréall) 19/20 PLOG 2013 Sorrento
  • 20. collective.local.* Thank you for your attention thomas.desvenain@gmail.com vincent.fretin@gmail.com http://github.com/tdesvenain http://github.com/vincentfretin Thomas Desvenain (Ecréall) 20/20 PLOG 2013 Sorrento