aboutsummaryrefslogtreecommitdiffstats
path: root/modules/phpbb/manifests/instance.pp
blob: d688b019ce049827febb566c6f75a6ad3668acd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
define phpbb::instance() {
    include phpbb::base

    $lang = $name
    $database = "${phpbb::base::db}_${lang}"

    $user = $phpbb::base::user
    $pgsql_password = $phpbb::base::pgsql_password
    $forums_dir = $phpbb::base::forums_dir

    include git::client
    exec { "git_clone ${lang}":
        command =>"git clone git://git.${::domain}/web/forums/ ${lang}",
        cwd     => $forums_dir,
        creates => "${forums_dir}/${lang}",
        require => File[$forums_dir],
        notify  => Exec["rm_install ${lang}"],
    }

    # remove this or the forum will not work ( 'board disabled' )
    # maybe it would be better to move this elsehwere, I
    # am not sure ( and in any case, that's still in git )
    exec { "rm_install ${lang}":
        command => "rm -Rf ${forums_dir}/${lang}/phpBB/install",
        onlyif  => "test -d ${forums_dir}/${lang}/phpBB/install",
    }

    # list found by reading ./install/install_install.php
    # end of check_server_requirements ( 2 loops )

    $writable_dirs = ['cache',
            'images/avatars/upload',
            'files',
            'store' ]

    $dir_names = regsubst($writable_dirs,'^',"${forums_dir}/${lang}/phpBB/")

    file { $dir_names:
        ensure  => directory,
        owner   => 'apache',
        require => Exec["git_clone ${lang}"],
    }

    file { "${forums_dir}/${lang}/phpBB/config.php":
        content => template('phpbb/config.php'),
    }

    @@phpbb::locale_db { $database:
        user => $user,
    }

    Phpbb::Config {
        database => $database,
    }

    $ldap_password = extlookup( 'phpbb_ldap','x')

    phpbb::config {
        "ldap_user/${lang}":
            key => 'ldap_user', value => "cn=phpbb-${::hostname},ou=System Accounts,${::dc_suffix}";
        "ldap_server/${lang}":
            key => 'ldap_server', value => "ldaps://ldap.${::domain} ldaps://ldap-slave-1.${::domain}";
        "ldap_password/${lang}":
            key => 'ldap_password', value => $ldap_password;
        "ldap_base_dn/${lang}":
            key => 'ldap_base_dn', value => "ou=People,${::dc_suffix}";
        "auth_method/${lang}":
            key => 'auth_method', value => 'ldap';
        "ldap_mail/${lang}":
            key => 'ldap_mail', value => 'mail';
        "ldap_uid/${lang}":
            key => 'ldap_uid', value => 'uid';
        "cookie_domain/${lang}":
            key => 'cookie_domain', value => "forums.${::domain}";
        "server_name/${lang}":
            key => 'server_name', value => "forums.${::domain}";
        "default_lang/${lang}":
            key => 'default_lang', value => $lang;
    }
}