[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - RolePermissionManager.py:1.1.2.1
Jim Fulton
jim@zope.com
Thu, 3 Jan 2002 14:14:25 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv14176
Added Files:
Tag: Zope-3x-branch
RolePermissionManager.py
Log Message:
Added view component for managing role-permission settings
=== Added File Zope3/lib/python/Zope/App/Security/tests/RolePermissionManager.py ===
##############################################################################
#
# Copyright (c) 2001 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
#
##############################################################################
"""
Test IRolePermissionManager class.
Revision information: $Id: RolePermissionManager.py,v 1.1.2.1 2002/01/03 19:14:24 jim Exp $
"""
from Zope.App.Security.IRolePermissionManager import IRolePermissionManager
class RolePermissionManager:
__implements__ = IRolePermissionManager
def __init__(self, **rp):
self._rp = rp
# Implementation methods for interface
# Zope.App.Security.IRolePermissionManager.
def getRolesForPermission(self, permission):
'''See interface IRolePermissionMap'''
r=[]
for role, permissions in self._rp.items():
if permission in permissions: r.append(role)
return r
def getPermissionAcquired(self, permission):
'''See interface IRolePermissionMap'''
return 1
def getPermissionsForRole(self, role):
'''See interface IRolePermissionMap'''
return self._rp[role]
def setPermissionAcquired(self, permission, flag):
'''See interface IRolePermissionManager'''
raise TypeError
def retractPermissionFromRole(self, permission, role):
'''See interface IRolePermissionManager'''
permissions = self._rp.get(role, ())
if permission in permissions:
permissions.remove(permission)
if not permissions:
del self._rp[role]
def grantPermissionToRole(self, permission, role):
'''See interface IRolePermissionManager'''
if role in self._rp:
if permission not in self._rp[role]:
self._rp[role].append(permission)
else:
self._rp[role] = [permission]