Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 66 |
| user_form | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
210 | |
0.00% |
0 / 66 |
| get_user_row | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 10 |
|||
| check_allow | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 24 |
|||
| bind | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 6 |
|||
| submit | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 15 |
|||
| render | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 11 |
|||
| <?php | |
| /** | |
| * | |
| * This file is part of the phpBB Forum Software package. | |
| * | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com> | |
| * @license GNU General Public License, version 2 (GPL-2.0) | |
| * | |
| * For full copyright and license information, please see | |
| * the docs/CREDITS.txt file. | |
| * | |
| */ | |
| namespace phpbb\message; | |
| /** | |
| * Class user_form | |
| * Allows users to send emails to other users | |
| */ | |
| class user_form extends form | |
| { | |
| /** @var int */ | |
| protected $recipient_id; | |
| /** @var array */ | |
| protected $recipient_row; | |
| /** @var string */ | |
| protected $subject; | |
| /** | |
| * Get the data of the recipient | |
| * | |
| * @param int $user_id | |
| * @return false|array false if the user does not exist, array otherwise | |
| */ | |
| protected function get_user_row($user_id) | |
| { | |
| $sql = 'SELECT user_id, username, user_colour, user_email, user_allow_viewemail, user_lang, user_jabber, user_notify_type | |
| FROM ' . USERS_TABLE . ' | |
| WHERE user_id = ' . (int) $user_id . ' | |
| AND user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')'; | |
| $result = $this->db->sql_query($sql); | |
| $row = $this->db->sql_fetchrow($result); | |
| $this->db->sql_freeresult($result); | |
| return $row; | |
| } | |
| /** | |
| * {inheritDoc} | |
| */ | |
| public function check_allow() | |
| { | |
| $error = parent::check_allow(); | |
| if ($error) | |
| { | |
| return $error; | |
| } | |
| if (!$this->auth->acl_get('u_sendemail')) | |
| { | |
| return 'NO_EMAIL'; | |
| } | |
| if ($this->recipient_id == ANONYMOUS || !$this->config['board_email_form']) | |
| { | |
| return 'NO_EMAIL'; | |
| } | |
| if (!$this->recipient_row) | |
| { | |
| return 'NO_USER'; | |
| } | |
| // Can we send email to this user? | |
| if (!$this->recipient_row['user_allow_viewemail'] && !$this->auth->acl_get('a_user')) | |
| { | |
| return 'NO_EMAIL'; | |
| } | |
| return false; | |
| } | |
| /** | |
| * {inheritDoc} | |
| */ | |
| public function bind(\phpbb\request\request_interface $request) | |
| { | |
| parent::bind($request); | |
| $this->recipient_id = $request->variable('u', 0); | |
| $this->subject = $request->variable('subject', '', true); | |
| $this->recipient_row = $this->get_user_row($this->recipient_id); | |
| } | |
| /** | |
| * {inheritDoc} | |
| */ | |
| public function submit(\messenger $messenger) | |
| { | |
| if (!$this->subject) | |
| { | |
| $this->errors[] = $this->user->lang['EMPTY_SUBJECT_EMAIL']; | |
| } | |
| if (!$this->body) | |
| { | |
| $this->errors[] = $this->user->lang['EMPTY_MESSAGE_EMAIL']; | |
| } | |
| $this->message->set_template('profile_send_email'); | |
| $this->message->set_subject($this->subject); | |
| $this->message->set_body($this->body); | |
| $this->message->add_recipient_from_user_row($this->recipient_row); | |
| parent::submit($messenger); | |
| } | |
| /** | |
| * {inheritDoc} | |
| */ | |
| public function render(\phpbb\template\template $template) | |
| { | |
| parent::render($template); | |
| $template->assign_vars(array( | |
| 'S_SEND_USER' => true, | |
| 'S_POST_ACTION' => append_sid($this->phpbb_root_path . 'memberlist.' . $this->phpEx, 'mode=email&u=' . $this->recipient_id), | |
| 'L_SEND_EMAIL_USER' => $this->user->lang('SEND_EMAIL_USER', $this->recipient_row['username']), | |
| 'USERNAME_FULL' => get_username_string('full', $this->recipient_row['user_id'], $this->recipient_row['username'], $this->recipient_row['user_colour']), | |
| 'SUBJECT' => $this->subject, | |
| 'MESSAGE' => $this->body, | |
| )); | |
| } | |
| } |