Changeset 375
- Timestamp:
- 07/05/06 12:32:21
- Files:
-
- qPloneComments/trunk/Extensions/Install.py (modified) (previous)
- qPloneComments/trunk/__init__.py (modified) (2 diffs)
- qPloneComments/trunk/patch.py (modified) (6 diffs)
- qPloneComments/trunk/skins/qplonecomments/2.0.5/viewThreadsAtBottom.pt (modified) (1 diff)
- qPloneComments/trunk/skins/qplonecomments/2.1/viewThreadsAtBottom.pt (modified) (1 diff)
- qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup.cpy (modified) (2 diffs)
- qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup_form.cpt (modified) (2 diffs)
- qPloneComments/trunk/tests/testQPloneCommentsPermission.py (added)
- qPloneComments/trunk/utils.py (modified) (1 diff)
- qPloneComments/trunk/version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qPloneComments/trunk/__init__.py
r374 r375 1 1 from Products.CMFCore.DirectoryView import registerDirectory 2 from AccessControl import allow_module 2 from AccessControl import allow_module, Permission 3 3 4 4 from config import * … … 10 10 allow_module('Products.qPloneComments.utils') 11 11 12 Permission.registerPermissions((('Moderate Discussion', (), ('Manager',)),)) qPloneComments/trunk/patch.py
r374 r375 3 3 from DateTime import DateTime 4 4 from Products.CMFCore.utils import getToolByName 5 from AccessControl import ClassSecurityInfo 6 from Globals import InitializeClass 5 7 6 8 from utils import * … … 45 47 ifModerate = getProp(self, "enable_moderation", marker=False) 46 48 if ifModerate: 47 roles = ['DiscussionManager'] 49 roles = [role['name'] for role in self.acl_users.rolesOfPermission('Moderate Discussion') 50 if role['selected']== 'SELECTED'] 48 51 item.manage_permission('Delete objects', roles, acquire=1) 49 52 item.manage_permission('View', roles, acquire=0) … … 51 54 item.review_state = "published" 52 55 53 item.__of__( self ).indexObject() 56 item.__of__( self ).indexObject() 54 57 return id 55 56 58 57 59 def getReplies( self ): … … 60 62 associated with this Discussable 61 63 """ 64 62 65 objects = [] 63 66 a = objects.append … … 66 69 result_ids = self._getReplyResults() 67 70 for id in result_ids: 68 object = self._container.get( id ).__of__( self ) 71 object = self._container.get( id ).__of__( self ) 69 72 try: 70 73 if validate(self, self, id, object): … … 74 77 return objects 75 78 79 s = repr(DiscussionItemContainer.__ac_permissions__) 80 perms = DiscussionItemContainer.__ac_permissions__ 81 new_perms = [] 82 for item in perms: 83 perm_name = item[0] 84 funcs = item[1] 85 if 'deleteReply' in funcs: 86 new_perms.append( (perm_name, [f for f in funcs if f != 'deleteReply']) ) 87 new_perms.append( ('Moderate Discussion', ('deleteReply', )) ) 88 else: 89 new_perms.append(item) 90 DiscussionItemContainer.__ac_permissions__ = new_perms 91 #raise s + '\n' + repr(DiscussionItemContainer.__ac_permissions__) 92 93 InitializeClass(DiscussionItemContainer) 76 94 77 95 DiscussionItemContainer.createReply = createReply qPloneComments/trunk/skins/qplonecomments/2.0.5/viewThreadsAtBottom.pt
r374 r375 95 95 method="post" 96 96 style="display: inline;" 97 tal:condition="python:checkPermission('M anage portal', here)"97 tal:condition="python:checkPermission('Moderate Discussion', here)" 98 98 tal:attributes="action string:${reply/absolute_url}/deleteDiscussion"> 99 99 qPloneComments/trunk/skins/qplonecomments/2.1/viewThreadsAtBottom.pt
r374 r375 88 88 method="post" 89 89 style="display: inline;" 90 tal:condition="python:checkPermission('M anage portal', here)"90 tal:condition="python:checkPermission('Moderate Discussion', here)" 91 91 tal:attributes="action string:${reply/absolute_url}/deleteDiscussion"> 92 92 <input class="destructive" qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup.cpy
r374 r375 10 10 from Products.CMFCore.utils import getToolByName 11 11 from Products.qPloneComments.utils import setAnonymCommenting 12 12 #from AccessControl.Permission import Permission 13 13 form = context.REQUEST.form 14 14 pp = getToolByName(context, 'portal_properties') … … 37 37 props_sheet.manage_changeProperties(kw) 38 38 39 moderate_discussion = 'Moderate Discussion' 40 if not 'EnableManagerModeration' in request_ids: 41 roles = [item['name'] for item in context.rolesOfPermission(moderate_discussion) 42 if (item['name'] != 'Manager') and (item['selected'] == 'SELECTED')] 43 context.manage_permission(moderate_discussion, roles, acquire=0) 44 45 else: 46 roles = [item['name'] for item in context.rolesOfPermission(moderate_discussion) 47 if item['selected'] == 'SELECTED'] 48 roles.append('Manager') 49 context.manage_permission(moderate_discussion, roles, acquire=0) 50 51 39 52 return state.set(portal_status_message='qPloneComments configuration changes saved.') qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup_form.cpt
r374 r375 127 127 tabindex tabindex/next;"/> 128 128 129 <label i18n:translate="label_enable_approve_notification" 129 <label i18n:translate="label_enable_approve_notification" 130 130 for="isEnableApproveNotification">Enable Discussion Manager notification on new comments.</label> 131 </div> 132 133 <div class="field" 134 tal:define="isEnabledManagerModeration python:checkPermission('Moderate Discussion', here);"> 135 136 <input type="checkbox" 137 class="noborder" 138 name="EnableManagerModeration" 139 id="EnableManagerModeration" 140 tabindex ="" 141 tal:attributes="value isEnabledManagerModeration; 142 checked python:test(isEnabledManagerModeration, 'True', ''); 143 tabindex tabindex/next;"/> 144 145 <label i18n:translate="enable_manager_moderation" 146 for="isEnableApproveNotification">Enable Manager moderation.</label> 131 147 </div> 132 148 … … 137 153 tal:attributes="class python:test(error, 'field error', 'field')" 138 154 tal:condition="python:props_sheet.hasProperty(property_id)"> 139 155 140 156 <label i18n:translate="label_discussion-manager_email">Send comments notification emails to:</label> 141 157 142 158 <div class="formHelp" id="smtp_server_help" 143 159 i18n:translate="help_discussion-manager_email"> qPloneComments/trunk/utils.py
r374 r375 66 66 return 1 67 67 68 68 69 69 def publishDiscussion(self): 70 70 roles = ['Anonymous'] qPloneComments/trunk/version.txt
r374 r375 1 2. 01 2.2
