aboutsummaryrefslogtreecommitdiffstats
path: root/modules/phpbb/manifests/instance.pp
blob: 1ca8e57b26ed442f6148c4bb63f34047c6764e4d (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;
    }
}