[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/OFS/Services/RoleService - Role.py:1.1.4.1 RoleService.py:1.1.4.1 __init__.py:1.1.4.1 role-service.zcml:1.1.4.1

Christian Theune ct@gocept.com
Sat, 25 May 2002 10:03:21 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/OFS/Services/RoleService
In directory cvs.zope.org:/tmp/cvs-serv26313/lib/python/Zope/App/OFS/Services/RoleService

Added Files:
      Tag: Zope-3x-branch
	Role.py RoleService.py __init__.py role-service.zcml 
Log Message:
Merged the ctheune-services_move-branch to Zope-3x-branch

- Moved Zope.App.OFS.ServiceManager into the Zope.App.OFS.Services package
- Moved Zope.App.OFS.RoleService into the Zope.App.OFS.Services package



=== Added File Zope3/lib/python/Zope/App/OFS/Services/RoleService/Role.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
"""

Revision information:
$Id: Role.py,v 1.1.4.1 2002/05/25 14:03:20 ctheune Exp $
"""

from Zope.App.Security.IRole import IRole
from Zope.ComponentArchitecture.IFactory import IFactory
from Zope.App.Security.RegisteredObject import RegisteredObject
from Persistence import Persistent

class Role(RegisteredObject, Persistent):
    __implements__ = IRole
    __class_implements__ = IFactory

    def __init__(self):
        super(Role, self).__init__('', '', '')
    
    def setId(self, id):
        self._id = id
        
    def getInterfaces(self):
        return self.__implements__




=== Added File Zope3/lib/python/Zope/App/OFS/Services/RoleService/RoleService.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
"""

Revision information:
$Id: RoleService.py,v 1.1.4.1 2002/05/25 14:03:20 ctheune Exp $
"""
from Zope.App.OFS.Container.BTreeContainer import BTreeContainer
from Zope.App.Security.IRoleService import IRoleService
from Zope.App.OFS.Container.IContainer import IContainer
from Zope.App.Security.RoleRegistry import roleRegistry
from Zope.ContextWrapper import ContextMethod
from Zope.ComponentArchitecture import getNextService

class ILocalRoleService(IRoleService, IContainer):
    """TTW manageable role service"""

class RoleService(BTreeContainer):

    __implements__ =  ILocalRoleService

    ############################################################
    # Implementation methods for interface
    # Zope.App.Security.IRoleService.

    def getRole(wrapped_self, rid):
        '''See interface IRoleService'''
        try: return wrapped_self.getObject(rid)
        except KeyError:
            # We failed locally: delegate to a higher-level service.
            sv= getNextService(wrapped_self, 'RoleService')
            if sv: return sv.getRole(rid)
            raise # will be original Key Error
    
    getRole=ContextMethod(getRole)

    def getRoles(wrapped_self):
        '''See interface IRoleService'''
        roles = list(wrapped_self.objectValues())
        roleserv=getNextService(wrapped_self, 'RoleService')
        if roleserv:
            roles.extend(roleserv.getRoles())
        return roles
    
    getRoles=ContextMethod(getRoles)

    #
    ############################################################


=== Added File Zope3/lib/python/Zope/App/OFS/Services/RoleService/__init__.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################



=== Added File Zope3/lib/python/Zope/App/OFS/Services/RoleService/role-service.zcml ===
<zopeConfigure
   xmlns='http://namespaces.zope.org/zope'
   xmlns:security='http://namespaces.zope.org/security'
   xmlns:zmi='http://namespaces.zope.org/zmi'
   xmlns:browser='http://namespaces.zope.org/browser'

   xmlns:service='http://namespaces.zope.org/service'
>

<security:protectClass name=".RoleService.">
   <security:protect interface="Zope.App.Security.IRoleService." 
                     permission_id="Zope.Security" />
   <security:protect interface="Zope.App.OFS.Container.IContainer." 
                     permission_id="Zope.ManageServices" />
</security:protectClass>

<security:protectClass name=".Role.">
   <security:protect interface="Zope.App.Security.IRole." 
                     permission_id="Zope.Security" />
</security:protectClass>


<service:factoryFromClass name="RoleService"
                          class=".RoleService+"
                          permission_id="Zope.ManageServices"
                          title="Role Service" />

<factory component=".Role." />

<include package=".Views" file="views.zcml" />

</zopeConfigure>