Skip to content

Commit

Permalink
fix(permissions): Add a permission for each content type
Browse files Browse the repository at this point in the history
  • Loading branch information
toutpt committed Aug 23, 2013
1 parent a884ff9 commit 60da6c4
Show file tree
Hide file tree
Showing 11 changed files with 121 additions and 11 deletions.
1 change: 1 addition & 0 deletions plone/app/contenttypes/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from zope.i18nmessageid import MessageFactory
import permissions

_ = MessageFactory('plone')
32 changes: 32 additions & 0 deletions plone/app/contenttypes/permissions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from AccessControl.SecurityInfo import ModuleSecurityInfo
from Products.CMFCore.permissions import setDefaultRoles
#http://developer.plone.org/security/custom_permissions.html
security = ModuleSecurityInfo('plone.app.contenttypes')
TYPE_ROLES = ('Manager', 'Site Administrator', 'Owner')
perms = []
import logging
for typename in (
"Collection",
"Document",
"Event",
"File",
"Folder",
"Image",
"Link",
"News Item",
):
# ctype = "plone.app.contenttypes." + typename
permid = 'Add' + typename
permname = 'plone.app.contenttypes: Add ' + typename
security.declarePublic(permid)
setDefaultRoles(permname, TYPE_ROLES)
logging.getLogger("log").info("setDefaultRoles(%s, %s)" % (permname, TYPE_ROLES))

AddCollection = "plone.app.contenttypes: Add Collection"
AddDocument = "plone.app.contenttypes: Add Document"
AddEvent = "plone.app.contenttypes: Add Event"
AddFile = "plone.app.contenttypes: Add File"
AddFolder = "plone.app.contenttypes: Add Folder"
AddImage = "plone.app.contenttypes: Add Image"
AddLink = "plone.app.contenttypes: Add Link"
AddNewsItem = "plone.app.contenttypes: Add News Item"
41 changes: 37 additions & 4 deletions plone/app/contenttypes/permissions.zcml
Original file line number Diff line number Diff line change
@@ -1,10 +1,43 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:zcml="http://namespaces.zope.org/zcml"
i18n_domain="plone">

<permission
id="plone.app.contenttypes.addCollection"
title="plone.app.contenttypes: Add Collection"
/>
<configure zcml:condition="installed AccessControl.security">

<permission
id="plone.app.contenttypes.addCollection"
title="plone.app.contenttypes: Add Collection"
/>
<permission
id="plone.app.contenttypes.addDocument"
title="plone.app.contenttypes: Add Document"
/>
<permission
id="plone.app.contenttypes.addEvent"
title="plone.app.contenttypes: Add Event"
/>
<permission
id="plone.app.contenttypes.addFile"
title="plone.app.contenttypes: Add File"
/>
<permission
id="plone.app.contenttypes.addFolder"
title="plone.app.contenttypes: Add Folder"
/>
<permission
id="plone.app.contenttypes.addImage"
title="plone.app.contenttypes: Add Image"
/>
<permission
id="plone.app.contenttypes.addLink"
title="plone.app.contenttypes: Add Link"
/>
<permission
id="plone.app.contenttypes.addNewsItem"
title="plone.app.contenttypes: Add News Item"
/>

</configure>

</configure>
44 changes: 44 additions & 0 deletions plone/app/contenttypes/profiles/default/rolemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,50 @@
<permission name="plone.app.contenttypes: Add Collection" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add Document" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add Event" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add File" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add Folder" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add Image" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add Link" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
<permission name="plone.app.contenttypes: Add News Item" acquire="True">
<role name="Manager" />
<role name="Site Administrator" />
<role name="Owner"/>
<role name="Contributor"/>
</permission>
</permissions>
</rolemap>
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/Document.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<element value="document_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addDocument</property>
<property name="klass">plone.app.contenttypes.content.Document</property>
<property name="behaviors">
<element value="plone.app.content.interfaces.INameFromTitle"/>
Expand Down
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/Event.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<element value="event_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addEvent</property>
<property name="klass">plone.app.contenttypes.content.Event</property>
<property name="behaviors">
<element value="plone.app.contenttypes.interfaces.IEvent"/>
Expand Down
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/File.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<element value="file_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addFile</property>
<property name="klass">plone.app.contenttypes.content.File</property>
<property name="behaviors">
<element value="plone.app.dexterity.behaviors.metadata.ICategorization"/>
Expand Down
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/Folder.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<element value="folder_listing"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addFolder</property>
<property name="klass">plone.app.contenttypes.content.Folder</property>
<property name="behaviors">
<element value="plone.app.dexterity.behaviors.metadata.IDublinCore"/>
Expand Down
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/Image.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<element value="image_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addImage</property>
<property name="klass">plone.app.contenttypes.content.Image</property>
<property name="behaviors">
<element value="plone.app.dexterity.behaviors.metadata.ICategorization"/>
Expand Down
2 changes: 1 addition & 1 deletion plone/app/contenttypes/profiles/default/types/Link.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<element value="link_redirect_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addLink</property>
<property name="klass">plone.app.contenttypes.content.Link</property>
<property name="behaviors">
<element value="plone.app.dexterity.behaviors.discussion.IAllowDiscussion"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<element value="newsitem_view"/>
</property>
<property name="default_view_fallback">False</property>
<property name="add_permission">cmf.AddPortalContent</property>
<property name="add_permission">plone.app.contenttypes.addNewsItem</property>
<property name="klass">plone.app.contenttypes.content.NewsItem</property>
<property name="behaviors">
<element value="plone.app.dexterity.behaviors.metadata.IDublinCore"/>
Expand Down

1 comment on commit 60da6c4

@mister-roboto
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing information:

Please sign in to comment.