HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/mailing.wb-cloud.nl/public_html/admin/plugins/Common/DAO/ListUserTrait.php
<?php
/**
 * CommonPlugin for phplist.
 *
 * This file is a part of CommonPlugin.
 *
 * @category  phplist
 *
 * @author    Duncan Cameron
 * @copyright 2011-2024 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */

namespace phpList\plugin\Common\DAO;

/*
 * Trait providing methods on the listuser table.
 */
trait ListUserTrait
{
    public function addSubscriberToList($userId, $listId)
    {
        $query = <<<END
            INSERT INTO {$this->tables['listuser']}
            (listid, userid, entered)
            SELECT $listId, $userId, NOW()
            FROM DUAL
            WHERE NOT EXISTS (
                SELECT *
                FROM {$this->tables['listuser']}
                WHERE listid = $listId AND userid = $userId
            )
END;

        return $this->dbCommand->queryAffectedRows($query);
    }

    public function removeSubscriberFromList($userId, $listId)
    {
        $query = <<<END
            DELETE FROM {$this->tables['listuser']}
            WHERE listid = $listId AND userid = $userId
END;

        return $this->dbCommand->queryAffectedRows($query);
    }

    public function removeFromAllLists($userId)
    {
        $sql = <<<END
            DELETE FROM {$this->tables['listuser']}
            WHERE userid = $userId
END;

        return $this->dbCommand->queryAffectedRows($sql);
    }

    public function isUserOnList($userId, $listId)
    {
        $sql = <<<END
            SELECT 1
            FROM {$this->tables['listuser']}
            WHERE userid = $userId AND listid = $listId
END;

        return $this->dbCommand->queryOne($sql);
    }

    public function moveBetweenLists($userId, $fromListId, $toListId)
    {
        $removed = $this->removeSubscriberFromList($userId, $fromListId);
        $added = $this->addSubscriberToList($userId, $toListId);

        return [$removed, $added];
    }
}