Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 97
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
obtain_email_data
0.00% covered (danger)
0.00%
0 / 97
0.00% covered (danger)
0.00%
0 / 4
42
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 run
0.00% covered (danger)
0.00%
0 / 92
0.00% covered (danger)
0.00%
0 / 1
12
 get_step_count
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get_task_lang_name
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 *
4 * This file is part of the phpBB Forum Software package.
5 *
6 * @copyright (c) phpBB Limited <https://www.phpbb.com>
7 * @license GNU General Public License, version 2 (GPL-2.0)
8 *
9 * For full copyright and license information, please see
10 * the docs/CREDITS.txt file.
11 *
12 */
13
14namespace phpbb\install\module\obtain_data\task;
15
16use phpbb\install\exception\user_interaction_required_exception;
17
18class obtain_email_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
19{
20    /**
21     * @var \phpbb\install\helper\config
22     */
23    protected $install_config;
24
25    /**
26     * @var \phpbb\install\helper\iohandler\iohandler_interface
27     */
28    protected $io_handler;
29
30    /**
31     * Constructor
32     *
33     * @param \phpbb\install\helper\config                            $config        Installer's config
34     * @param \phpbb\install\helper\iohandler\iohandler_interface    $iohandler    Installer's input-output handler
35     */
36    public function __construct(\phpbb\install\helper\config $config,
37                                \phpbb\install\helper\iohandler\iohandler_interface $iohandler)
38    {
39        $this->install_config    = $config;
40        $this->io_handler        = $iohandler;
41
42        parent::__construct(true);
43    }
44
45    /**
46     * {@inheritdoc}
47     */
48    public function run()
49    {
50        // E-mail data
51        $email_enable    = $this->io_handler->get_input('email_enable', true);
52        $smtp_delivery    = $this->io_handler->get_input('smtp_delivery', '');
53        $smtp_host        = $this->io_handler->get_input('smtp_host', '', true);
54        $smtp_port        = $this->io_handler->get_input('smtp_port', '');
55        $smtp_auth        = $this->io_handler->get_input('smtp_auth', '');
56        $smtp_user        = $this->io_handler->get_input('smtp_user', '', true);
57        $smtp_passwd    = $this->io_handler->get_input('smtp_pass', '', true);
58
59        $auth_methods = array('PLAIN', 'LOGIN', 'CRAM-MD5', 'DIGEST-MD5', 'POP-BEFORE-SMTP');
60
61        // Check if data is sent
62        if ($this->io_handler->get_input('submit_email', false))
63        {
64            $this->install_config->set('email_enable', $email_enable);
65            $this->install_config->set('smtp_delivery', $smtp_delivery);
66            $this->install_config->set('smtp_host', $smtp_host);
67            $this->install_config->set('smtp_port', $smtp_port);
68            $this->install_config->set('smtp_auth', $smtp_auth);
69            $this->install_config->set('smtp_user', $smtp_user);
70            $this->install_config->set('smtp_pass', $smtp_passwd);
71        }
72        else
73        {
74            $auth_options = array();
75            foreach ($auth_methods as $method)
76            {
77                $auth_options[] = array(
78                    'value'        => $method,
79                    'label'        => 'SMTP_' . str_replace('-', '_', $method),
80                    'selected'    => false,
81                );
82            }
83
84            $email_form = array(
85                'email_enable' => array(
86                    'label'            => 'ENABLE_EMAIL',
87                    'description'    => 'ENABLE_EMAIL_EXPLAIN',
88                    'type'            => 'radio',
89                    'options'        => array(
90                        array(
91                            'value'        => 1,
92                            'label'        => 'ENABLE',
93                            'selected'    => true,
94                        ),
95                        array(
96                            'value'        => 0,
97                            'label'        => 'DISABLE',
98                            'selected'    => false,
99                        ),
100                    ),
101                ),
102                'smtp_delivery' => array(
103                    'label'            => 'USE_SMTP',
104                    'description'    => 'USE_SMTP_EXPLAIN',
105                    'type'            => 'radio',
106                    'options'        => array(
107                        array(
108                            'value'        => 0,
109                            'label'        => 'NO',
110                            'selected'    => true,
111                        ),
112                        array(
113                            'value'        => 1,
114                            'label'        => 'YES',
115                            'selected'    => false,
116                        ),
117                    ),
118                ),
119                'smtp_host' => array(
120                    'label'            => 'SMTP_SERVER',
121                    'type'            => 'text',
122                    'default'        => $smtp_host,
123                ),
124                'smtp_port' => array(
125                    'label'            => 'SMTP_PORT',
126                    'type'            => 'text',
127                    'default'        => $smtp_port,
128                ),
129                'smtp_auth' => array(
130                    'label'            => 'SMTP_AUTH_METHOD',
131                    'description'    => 'SMTP_AUTH_METHOD_EXPLAIN',
132                    'type'            => 'select',
133                    'options'        => $auth_options,
134                ),
135                'smtp_user' => array(
136                    'label'            => 'SMTP_USERNAME',
137                    'description'    => 'SMTP_USERNAME_EXPLAIN',
138                    'type'            => 'text',
139                    'default'        => $smtp_user,
140                ),
141                'smtp_pass' => array(
142                    'label'            => 'SMTP_PASSWORD',
143                    'description'    => 'SMTP_PASSWORD_EXPLAIN',
144                    'type'            => 'password',
145                ),
146                'submit_email' => array(
147                    'label'    => 'SUBMIT',
148                    'type'    => 'submit',
149                ),
150            );
151
152            $this->io_handler->add_user_form_group('EMAIL_CONFIG', $email_form);
153
154            throw new user_interaction_required_exception();
155        }
156    }
157
158    /**
159     * {@inheritdoc}
160     */
161    public static function get_step_count()
162    {
163        return 0;
164    }
165
166    /**
167     * {@inheritdoc}
168     */
169    public function get_task_lang_name()
170    {
171        return '';
172    }
173}