Changeset 368

Show
Ignore:
Timestamp:
07/04/06 09:42:36
Author:
crchemist
Message:

Added 'Moderate Discassion' permission.

Files:

Legend:

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

    r367 r368  
    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/tags/2.0/patch.py

    r367 r368  
    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/tags/2.0/skins/qplonecomments/2.1/viewThreadsAtBottom.pt

    r367 r368  
    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/tags/2.0/utils.py

    r367 r368  
    6666    return 1 
    6767 
    68          
     68 
    6969def publishDiscussion(self): 
    7070    roles = ['Anonymous']