예제 #1
0
def provision_site(user, site_type, site_name, template_id=""):
    # create site entry
    site = models.Site(user.id, site_type, site_name)
    site.last_accessed = datetime.now()
    models.Session.add(site)
    models.Session.flush()

    # create host
    hostname = "%s.%s" % (site_name, PLOUD.domain)
    host = models.Host(site.id, hostname.lower())
    models.Session.add(host)
    addVirtualHosts((str(hostname),), "plone41")
    POLICIES[user.type].changeHostsPolicy((hostname,), site_name)

    # Create the database.
    conn = ploud_config.CLIENTS_POOL.getconn()
    try:
        tmpl.create_site(conn, site.id, template_id=template_id, type=site_type)
    except NameError:
        tmpl.create_site(conn, site.id, type=site_type)
    conn.commit()
    ploud_config.CLIENTS_POOL.putconn(conn)
    transaction.commit()

    # change owner of new site
    if PLOUD.maintence is not None:
        PLOUD.maintence.execute(hostname, "ploud-fix-owner")

    return site
예제 #2
0
def provision_site(user, site_type, site_name, template_id='', language='en'):
    # create site entry
    site = models.Site(user.id, site_type, site_name)
    site.last_accessed = datetime.now()
    Session = ptah.get_session()
    Session.add(site)
    Session.flush()

    # create host
    PLOUD = ptah.get_settings('ploud')

    hostname = '%s.%s'%(site_name, PLOUD['domain'])
    host = models.Host(site.id, hostname.lower())
    Session.add(host)
    addVirtualHosts((str(hostname),), 'plone41')
    POLICIES[user.type].changeHostsPolicy((hostname,), site_name)

    FE = ptah.get_settings('frontend')
    if FE['devmode']:
        transaction.commit()
        return site

    # Create the database.
    conn = ploud_config.CLIENTS_POOL.getconn()
    try:
        tmpl.create_site(conn, site.id, template_id=template_id, type=site_type)
    except NameError:
        tmpl.create_site(conn, site.id, type=site_type)
    conn.commit()
    ploud_config.CLIENTS_POOL.putconn(conn)
    transaction.commit()

    # change owner of new site
    if maintenance.maintence is not None:
        maintenance.maintence.execute(hostname, 'ploud-fix-owner,%s' % language)

    return site