def checkPermission(permission, object, interaction=None): """Return whether security policy allows permission on object. Arguments: permission -- A permission name object -- The object being accessed according to the permission interaction -- This Zope 3 concept has no equivalent in Zope 2, and is ignored. checkPermission is guaranteed to return True if permission is CheckerPublic or None. """ if (permission in ('zope.Public', 'zope2.Public') or permission is None or permission is CheckerPublic): return True if isinstance(permission, StringTypes): permission = zapi.queryUtility(IPermission, unicode(permission)) if permission is None: return False if getSecurityManager().checkPermission(permission.title, object): return True return False