Changeset 375

Show
Ignore:
Timestamp:
07/05/06 12:32:21
Author:
crchemist
Message:

Added 'Moderate Discussion' permission.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qPloneComments/trunk/__init__.py

    r374 r375  
    11from Products.CMFCore.DirectoryView import registerDirectory 
    2 from AccessControl import allow_module 
     2from AccessControl import allow_module, Permission 
    33 
    44from  config import * 
     
    1010allow_module('Products.qPloneComments.utils') 
    1111 
     12Permission.registerPermissions((('Moderate Discussion', (), ('Manager',)),)) 
  • qPloneComments/trunk/patch.py

    r374 r375  
    33from DateTime import DateTime 
    44from Products.CMFCore.utils import getToolByName 
     5from AccessControl import ClassSecurityInfo 
     6from Globals import InitializeClass 
    57 
    68from utils import * 
     
    4547    ifModerate = getProp(self, "enable_moderation", marker=False) 
    4648    if ifModerate: 
    47         roles = ['DiscussionManager'] 
     49        roles = [role['name'] for role in self.acl_users.rolesOfPermission('Moderate Discussion') 
     50                 if role['selected']== 'SELECTED'] 
    4851        item.manage_permission('Delete objects', roles, acquire=1) 
    4952        item.manage_permission('View', roles, acquire=0) 
     
    5154        item.review_state = "published" 
    5255 
    53     item.__of__( self ).indexObject()         
     56    item.__of__( self ).indexObject() 
    5457    return id 
    55  
    5658 
    5759def getReplies( self ): 
     
    6062        associated with this Discussable 
    6163    """ 
     64 
    6265    objects = [] 
    6366    a = objects.append 
     
    6669    result_ids = self._getReplyResults() 
    6770    for id in result_ids: 
    68         object = self._container.get( id ).__of__( self )  
     71        object = self._container.get( id ).__of__( self ) 
    6972        try: 
    7073            if validate(self, self, id, object): 
     
    7477    return objects 
    7578 
     79s = repr(DiscussionItemContainer.__ac_permissions__) 
     80perms = DiscussionItemContainer.__ac_permissions__ 
     81new_perms = [] 
     82for 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) 
     90DiscussionItemContainer.__ac_permissions__ = new_perms 
     91#raise s + '\n' + repr(DiscussionItemContainer.__ac_permissions__) 
     92 
     93InitializeClass(DiscussionItemContainer) 
    7694 
    7795DiscussionItemContainer.createReply = createReply 
  • qPloneComments/trunk/skins/qplonecomments/2.0.5/viewThreadsAtBottom.pt

    r374 r375  
    9595                          method="post" 
    9696                          style="display: inline;" 
    97                           tal:condition="python:checkPermission('Manage portal', here)" 
     97                          tal:condition="python:checkPermission('Moderate Discussion', here)" 
    9898                          tal:attributes="action string:${reply/absolute_url}/deleteDiscussion"> 
    9999 
  • qPloneComments/trunk/skins/qplonecomments/2.1/viewThreadsAtBottom.pt

    r374 r375  
    8888                          method="post" 
    8989                          style="display: inline;" 
    90                           tal:condition="python:checkPermission('Manage portal', here)" 
     90                          tal:condition="python:checkPermission('Moderate Discussion', here)" 
    9191                          tal:attributes="action string:${reply/absolute_url}/deleteDiscussion"> 
    9292                        <input class="destructive" 
  • qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup.cpy

    r374 r375  
    1010from Products.CMFCore.utils import getToolByName 
    1111from Products.qPloneComments.utils import setAnonymCommenting 
    12  
     12#from AccessControl.Permission import Permission 
    1313form = context.REQUEST.form 
    1414pp = getToolByName(context, 'portal_properties') 
     
    3737props_sheet.manage_changeProperties(kw) 
    3838 
     39moderate_discussion = 'Moderate Discussion' 
     40if 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 
     45else: 
     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 
    3952return state.set(portal_status_message='qPloneComments configuration changes saved.') 
  • qPloneComments/trunk/skins/qplonecomments/prefs_comments_setup_form.cpt

    r374 r375  
    127127                                           tabindex tabindex/next;"/> 
    128128 
    129                     <label i18n:translate="label_enable_approve_notification"  
     129                    <label i18n:translate="label_enable_approve_notification" 
    130130                           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> 
    131147                </div> 
    132148 
     
    137153                     tal:attributes="class python:test(error, 'field error', 'field')" 
    138154                     tal:condition="python:props_sheet.hasProperty(property_id)"> 
    139          
     155 
    140156                    <label i18n:translate="label_discussion-manager_email">Send comments notification emails to:</label> 
    141          
     157 
    142158                    <div class="formHelp" id="smtp_server_help" 
    143159                         i18n:translate="help_discussion-manager_email"> 
  • qPloneComments/trunk/utils.py

    r374 r375  
    6666    return 1 
    6767 
    68          
     68 
    6969def publishDiscussion(self): 
    7070    roles = ['Anonymous'] 
  • qPloneComments/trunk/version.txt

    r374 r375  
    1 2.0 
     12.2