Exemplo n.º 1
0
    def add_site(self):
        data, errors = self.extractData()
        if errors:
            return silvaforms.FAILURE
        self.context.manage_addProduct['Silva'].manage_addRoot(
            data['identifier'],
            data.getDefault('title'))
        root = self.context._getOb(data['identifier'])
        getUtility(IMessageService).send(
            _(u"New Silva site ${identifier} added.",
              mapping={'identifier': data['identifier']}),
            self.request)

        if data.getDefault('add_search'):
            # install a silva find instance
            factory = root.manage_addProduct['SilvaFind']
            factory.manage_addSilvaFind('search', 'Search this site')

        if data.getDefault('add_documentation'):
            transaction.commit() # Be sure everything in the site is
                                 # in the DB before.  install the user
                                 # documentation .zexp
            install_documentation(root, self.request)

        self.redirect(absoluteURL(root, self.request) + '/edit')
        return silvaforms.SUCCESS
Exemplo n.º 2
0
 def run(self, root, options):
     if options.list:
         logger.info('Listing silva sites')
         for content in root.objectValues():
             if IRoot.providedBy(content):
                 logger.info('%s (version %s)' % (
                         '/'.join(content.getPhysicalPath()),
                         content.get_silva_content_version()))
         return
     if not options.identifier:
         fail(u"Please provide a site identifier")
     identifier = options.identifier
     if ':' in identifier:
         identifier, title = identifier.split(':', 1)
     else:
         title = identifier
     if options.delete:
         if identifier not in root.objectIds():
             fail(
                 u'There is no such Silva root "%s" to delete.',
                 identifier)
         root.manage_delObjects([identifier])
         return
     if options.add:
         if identifier in root.objectIds():
             fail(
                 u'There is already a Zope object identifier by "%s"',
                 identifier)
         factory = root.manage_addProduct['Silva']
         factory.manage_addRoot(identifier, title)
         transaction.commit()
         logger.info(
             u'Silva root "%s" added.', identifier)
     root = root._getOb(identifier)
     if options.documentation:
         factory = root.manage_addProduct['SilvaFind']
         factory.manage_addSilvaFind('search', 'Search this site')
         install_documentation(root, TestRequest())
         transaction.commit()
         logger.info(
             u'Silva documentation installed inside Silva root "%s".',
             identifier)
     if options.user:
         parts = options.user.split(':')
         if len(parts) < 2 or len(parts) > 3:
             fail('Impossible to interpret user definition')
         username = parts[0]
         password = parts[1]
         role = parts[2] if len(parts) == 3 else 'Manager'
         acl_users = root._getOb('acl_users')
         users = acl_users._getOb('users')
         roles = acl_users._getOb('roles')
         if not role in roles.listRoleIds():
             fail(u'Role "%s" unknown.' % role)
         users.addUser(username, username, password)
         roles.assignRoleToPrincipal(role, username)
         transaction.commit()
         logger.info(
             u'User added to Silva root "%s".', identifier)
Exemplo n.º 3
0
    def test_install_documentation(self):
        """Test documentation installation. That should not make any
        error at all.
        """
        self.assertFalse('docs' in self.root.objectIds())

        install_documentation(self.root, TestRequest())
        self.assertTrue('docs' in self.root.objectIds())
        self.assertTrue(verifyObject(IPublication, self.root._getOb('docs')))
Exemplo n.º 4
0
    def add_site(self):
        data, errors = self.extractData()
        if errors:
            return silvaforms.FAILURE
        self.context.manage_addProduct['Silva'].manage_addRoot(
            data['identifier'], data.getDefault('title'))
        root = self.context._getOb(data['identifier'])
        getUtility(IMessageService).send(
            _("New Silva site ${identifier} added.",
              mapping={'identifier': data['identifier']}), self.request)

        if data.getDefault('add_search'):
            # install a silva find instance
            factory = root.manage_addProduct['SilvaFind']
            factory.manage_addSilvaFind('search', 'Search this site')

        if data.getDefault('add_documentation'):
            transaction.commit()  # Be sure everything in the site is
            # in the DB before.  install the user
            # documentation .zexp
            install_documentation(root, self.request)

        self.redirect(absoluteURL(root, self.request) + '/edit')
        return silvaforms.SUCCESS