def __init__(self): # Initialize users uf = UserFolder() self.__allow_groups__ = uf self._setObject('acl_users', uf) # Initialize control panel cpl = ApplicationManager() cpl._init() self._setObject('Control_Panel', cpl) transaction.get().note("Created Zope Application")
def _makeSite(self): import base64 from cStringIO import StringIO import urllib try: from OFS.userfolder import UserFolder except ImportError: # BBB for Zope < 2.13 from AccessControl.User import UserFolder from OFS.Folder import Folder from OFS.DTMLMethod import DTMLMethod root = Folder() root.isTopLevelPrincipiaApplicationObject = 1 # User folder needs this root.getPhysicalPath = lambda: () # hack root._View_Permission = ('Anonymous', ) users = UserFolder() users._setId('acl_users') users._doAddUser('abraham', 'pass-w', ('Patriarch', ), ()) users._doAddUser('isaac', 'pass-w', ('Son', ), ()) root._setObject(users.id, users) cc = self._makeOne() cc.id = self._CC_ID root._setObject(cc.id, cc) index = DTMLMethod() index.munge('This is the default view') index._setId('index_html') root._setObject(index.getId(), index) login = DTMLMethod() login.munge('Please log in first.') login._setId('login_form') root._setObject(login.getId(), login) protected = DTMLMethod() protected._View_Permission = ('Manager', ) protected.munge('This is the protected view') protected._setId('protected') root._setObject(protected.getId(), protected) req = makerequest(root, StringIO()) self._finally = req.close credentials = urllib.quote( base64.encodestring('abraham:pass-w').rstrip()) return root, cc, req, credentials
def getUserFolder(self): homeElmnt = self.getHome() userFldrs = homeElmnt.objectValues(user_folder_meta_types) if len(userFldrs) == 0: portalMaster = self.getPortalMaster() if portalMaster is not None: userFldr = portalMaster.getUserFolder() else: userFldr = UserFolder() homeElmnt._setObject(userFldr.id, userFldr) else: userFldr = userFldrs[0] return userFldr
def _makeSite(self): from OFS.DTMLMethod import DTMLMethod from OFS.Folder import Folder from OFS.userfolder import UserFolder class TestFolder(Folder): def getPhysicalPath(self): return () root = TestFolder() root.isTopLevelPrincipiaApplicationObject = 1 # User folder needs this root._View_Permission = ('Anonymous', ) users = UserFolder() users._setId('acl_users') users._doAddUser('abraham', 'pass-w', ('Patriarch', ), ()) users._doAddUser('isaac', 'pass-w', ('Son', ), ()) root._setObject(users.id, users) cc = self._makeOne() root._setObject(cc.id, cc) index = DTMLMethod() index.munge('This is the default view') index._setId('index_html') root._setObject(index.getId(), index) login = DTMLMethod() login.munge('Please log in first.') login._setId('login_form') root._setObject(login.getId(), login) protected = DTMLMethod() protected._View_Permission = ('Manager', ) protected.munge('This is the protected view') protected._setId('protected') root._setObject(protected.getId(), protected) req = makerequest(root, StringIO()) self._finally = req.close credentials = quote(base64_encode(b'abraham:pass-w')) return root, cc, req, credentials
def __init__(self): # Initialize users uf = UserFolder() self.__allow_groups__ = uf self._setObject('acl_users', uf)
class Application(ApplicationDefaultPermissions, Folder.Folder, FindSupport): """Top-level system object""" security = ClassSecurityInfo() title = 'Zope' __defined_roles__ = ('Manager', 'Anonymous', 'Owner') __error_log__ = None isTopLevelPrincipiaApplicationObject = 1 p_ = misc_.p_ misc_ = misc_.misc_ _reserved_names = ('Control_Panel', ) # This class-default __allow_groups__ ensures that the # emergency user can still access the system if the top-level # UserFolder is deleted. This is necessary to allow people # to replace the top-level UserFolder object. __allow_groups__ = UserFolder() def __init__(self): # Initialize users uf = UserFolder() self.__allow_groups__ = uf self._setObject('acl_users', uf) def getId(self): try: return self.REQUEST['SCRIPT_NAME'][1:] except (KeyError, TypeError): return self.title def title_and_id(self): return self.title def title_or_id(self): return self.title def __class_init__(self): InitializeClass(self) @property def Control_Panel(self): return APP_MANAGER.__of__(self) def Redirect(self, destination, URL1): # Utility function to allow user-controlled redirects. # No docstring please, we do not want an open redirect # available as url. if destination.find('//') >= 0: raise RedirectException(destination) raise RedirectException("%s/%s" % (URL1, destination)) ZopeRedirect = Redirect def __bobo_traverse__(self, REQUEST, name=None): if name is None: # Make this more explicit, otherwise getattr(self, name) # would raise a TypeError getattr(): attribute name must be string return None if name == 'Control_Panel': return APP_MANAGER.__of__(self) try: return getattr(self, name) except AttributeError: pass try: return self[name] except KeyError: pass method = REQUEST.get('REQUEST_METHOD', 'GET') if method not in ('GET', 'POST'): return NullResource(self, name, REQUEST).__of__(self) # Waaa. unrestrictedTraverse calls us with a fake REQUEST. # There is probably a better fix for this. try: REQUEST.RESPONSE.notFoundError("%s\n%s" % (name, method)) except AttributeError: raise KeyError(name) def ZopeTime(self, *args): """Utility function to return current date/time""" return DateTime(*args) def DELETE(self, REQUEST, RESPONSE): """Delete a resource object.""" self.dav__init(REQUEST, RESPONSE) raise Forbidden('This resource cannot be deleted.') def MOVE(self, REQUEST, RESPONSE): """Move a resource to a new location.""" self.dav__init(REQUEST, RESPONSE) raise Forbidden('This resource cannot be moved.') def absolute_url(self, relative=0): """The absolute URL of the root object is BASE1 or "/". """ if relative: return '' try: # Take advantage of computed URL cache return self.REQUEST['BASE1'] except (AttributeError, KeyError): return '/' def absolute_url_path(self): """The absolute URL path of the root object is BASEPATH1 or "/". """ try: return self.REQUEST['BASEPATH1'] or '/' except (AttributeError, KeyError): return '/' def virtual_url_path(self): """The virtual URL path of the root object is empty. """ return '' def getPhysicalRoot(self): return self def getPhysicalPath(self): # Get the physical path of the object. # # Returns a path (an immutable sequence of strings) that can be used to # access this object again later, for example in a copy/paste # operation. getPhysicalRoot() and getPhysicalPath() are designed to # operate together. # # We're at the base of the path. return ('', )
class Application( ApplicationDefaultPermissions, ZDOM.Root, Folder.Folder, App.ProductRegistry.ProductRegistry, FindSupport, ): """Top-level system object""" implements(IApplication) security = ClassSecurityInfo() title = 'Zope' __defined_roles__ = ('Manager', 'Anonymous', 'Owner') web__form__method = 'GET' isTopLevelPrincipiaApplicationObject = 1 # Create the help system object HelpSys = HelpSys('HelpSys') p_ = misc_.p_ misc_ = misc_.misc_ _reserved_names = ('Control_Panel', 'browser_id_manager', 'temp_folder') # This class-default __allow_groups__ ensures that the # emergency user can still access the system if the top-level # UserFolder is deleted. This is necessary to allow people # to replace the top-level UserFolder object. __allow_groups__ = UserFolder() # Set the universal default method to index_html _object_manager_browser_default_id = 'index_html' _initializer_registry = None def __init__(self): # Initialize users uf = UserFolder() self.__allow_groups__ = uf self._setObject('acl_users', uf) # Initialize control panel cpl = ApplicationManager() cpl._init() self._setObject('Control_Panel', cpl) transaction.get().note("Created Zope Application") def id(self): try: return self.REQUEST['SCRIPT_NAME'][1:] except: return self.title def title_and_id(self): return self.title def title_or_id(self): return self.title def __class_init__(self): InitializeClass(self) def PrincipiaRedirect(self, destination, URL1): """Utility function to allow user-controlled redirects""" if destination.find('//') >= 0: raise RedirectException, destination raise RedirectException, ("%s/%s" % (URL1, destination)) Redirect = ZopeRedirect = PrincipiaRedirect def __bobo_traverse__(self, REQUEST, name=None): try: return getattr(self, name) except AttributeError: pass try: return self[name] except KeyError: pass method = REQUEST.get('REQUEST_METHOD', 'GET') if not method in ('GET', 'POST'): return NullResource(self, name, REQUEST).__of__(self) # Waaa. unrestrictedTraverse calls us with a fake REQUEST. # There is proabably a better fix for this. try: REQUEST.RESPONSE.notFoundError("%s\n%s" % (name, method)) except AttributeError: raise KeyError, name def PrincipiaTime(self, *args): """Utility function to return current date/time""" return apply(DateTime, args) ZopeTime = PrincipiaTime security.declarePublic('ZopeAttributionButton') def ZopeAttributionButton(self): """Returns an HTML fragment that displays the 'powered by zope' button along with a link to the Zope site.""" return '<a href="http://www.zope.org/Credits" target="_top"><img ' \ 'src="%s/p_/ZopeButton" width="115" height="50" border="0" ' \ 'alt="Powered by Zope" /></a>' % escape(self.REQUEST.BASE1, 1) def DELETE(self, REQUEST, RESPONSE): """Delete a resource object.""" self.dav__init(REQUEST, RESPONSE) raise Forbidden, 'This resource cannot be deleted.' def MOVE(self, REQUEST, RESPONSE): """Move a resource to a new location.""" self.dav__init(REQUEST, RESPONSE) raise Forbidden, 'This resource cannot be moved.' test_url___allow_groups__ = None test_url = ZopeAttributionButton def absolute_url(self, relative=0): """The absolute URL of the root object is BASE1 or "/". """ if relative: return '' try: # Take advantage of computed URL cache return self.REQUEST['BASE1'] except (AttributeError, KeyError): return '/' def absolute_url_path(self): """The absolute URL path of the root object is BASEPATH1 or "/". """ try: return self.REQUEST['BASEPATH1'] or '/' except (AttributeError, KeyError): return '/' def virtual_url_path(self): """The virtual URL path of the root object is empty. """ return '' def getPhysicalRoot(self): return self def getPhysicalPath(self): """Get the physical path of the object. Returns a path (an immutable sequence of strings) that can be used to access this object again later, for example in a copy/paste operation. getPhysicalRoot() and getPhysicalPath() are designed to operate together. """ # We're at the base of the path. return ('', ) security.declarePrivate('_setInitializerFlag') def _setInitializerFlag(self, flag): if self._initializer_registry is None: self._initializer_registry = {} self._initializer_registry[flag] = 1 security.declarePrivate('_getInitializerFlag') def _getInitializerFlag(self, flag): reg = self._initializer_registry if reg is None: reg = {} return reg.get(flag)