Completed
Push — master ( 592643...f454c2 )
by Michael
03:05 queued 01:21
created

class/AttachmentHandler.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace XoopsModules\Xnewsletter;
4
5
/**
6
 * ****************************************************************************
7
 *  - A Project by Developers TEAM For Xoops - ( https://xoops.org )
8
 * ****************************************************************************
9
 *  XNEWSLETTER - MODULE FOR XOOPS
10
 *  Copyright (c) 2007 - 2012
11
 *  Goffy ( wedega.com )
12
 *
13
 *  You may not change or alter any portion of this comment or credits
14
 *  of supporting developers from this source code or any supporting
15
 *  source code which is considered copyrighted (c) material of the
16
 *  original comment or credit authors.
17
 *
18
 *  This program is distributed in the hope that it will be useful,
19
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
20
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
 *  GNU General Public License for more details.
22
 *  ---------------------------------------------------------------------------
23
 * @copyright  Goffy ( wedega.com )
24
 * @license    GNU General Public License 2.0
25
 * @package    xnewsletter
26
 * @author     Goffy ( [email protected] )
27
 *
28
 * ****************************************************************************
29
 */
30
31
//use XoopsModules\Xnewsletter;
32
33
require_once dirname(__DIR__) . '/include/common.php';
34
35
/**
36
 * Class AttachmentHandler
37
 */
38
class AttachmentHandler extends \XoopsPersistableObjectHandler
39
{
40
    /**
41
     * @var Helper
42
     * @access public
43
     */
44
    public $helper = null;
45
46
    /**
47
     * @param null|\XoopsDatabase                   $db
48
     * @param \XoopsModules\Xnewsletter\Helper|null $helper
49
     */
50
    public function __construct(\XoopsDatabase $db = null, Helper $helper = null)
51
    {
52
        parent::__construct($db, 'xnewsletter_attachment', Attachment::class, 'attachment_id', 'attachment_letter_id');
53
        /** @var Helper $this->helper */
54
        if (null === $helper) {
55
            $this->helper = Helper::getInstance();
56
        } else {
57
            $this->helper = $helper;
58
        }
59
    }
60
61
    /**
62
     * Delete attachment ({@link attachment} object) and file from filesystem
63
     *
64
     * @param \XoopsObject $attachmentObj
65
     * @param bool   $force
66
     *
67
     * @internal param object $object
68
     * @return bool
69
     */
70
    public function delete(\XoopsObject $attachmentObj, $force = false)
71
    {
72
        $res                  = true;
0 ignored issues
show
$res is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
73
        $attachment_letter_id = (int)$attachmentObj->getVar('attachment_letter_id');
74
        $attachment_name      = (string)$attachmentObj->getVar('attachment_name');
75
76
        if ($res = parent::delete($attachmentObj, $force)) {
77
            // delete file from filesystem
78
            @unlink(XOOPS_UPLOAD_PATH . $this->helper->getConfig('xn_attachment_path') . $attachment_letter_id . '/' . $attachment_name);
0 ignored issues
show
Security Best Practice introduced by
It seems like you do not handle an error condition here. This can introduce security issues, and is generally not recommended.

If you suppress an error, we recommend checking for the error condition explicitly:

// For example instead of
@mkdir($dir);

// Better use
if (@mkdir($dir) === false) {
    throw new \RuntimeException('The directory '.$dir.' could not be created.');
}
Loading history...
79
        }
80
81
        return $res;
82
    }
83
}
84