Commit | Line | Data |
---|---|---|
e0c10ca7 | 1 | <?php |
a9229942 | 2 | |
e0c10ca7 | 3 | namespace wcf\system\user\notification\event; |
a9229942 | 4 | |
e0c10ca7 MS |
5 | use wcf\data\moderation\queue\ModerationQueue; |
6 | use wcf\data\object\type\ObjectTypeCache; | |
7 | use wcf\data\user\UserProfile; | |
8 | use wcf\system\moderation\queue\ModerationQueueManager; | |
9 | use wcf\system\moderation\queue\ModerationQueueReportManager; | |
10 | use wcf\system\WCF; | |
11 | ||
12 | /** | |
13 | * Provides a method to create a moderation queue entry for testing user notification | |
14 | * events. | |
15 | * | |
a9229942 TD |
16 | * @author Matthias Schmidt |
17 | * @copyright 2001-2019 WoltLab GmbH | |
18 | * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php> | |
19 | * @package WoltLabSuite\Core\System\User\Notification\Event | |
20 | * @since 3.1 | |
e0c10ca7 | 21 | */ |
a9229942 TD |
22 | trait TTestableModerationQueueUserNotificationEvent |
23 | { | |
24 | /** | |
25 | * Creates a moderation queue entry for a reported user. | |
26 | * | |
27 | * @param UserProfile $reportedUser | |
28 | * @param UserProfile $reportingUser | |
29 | * @return ModerationQueue | |
30 | */ | |
31 | public static function getTestUserModerationQueueEntry(UserProfile $reportedUser, UserProfile $reportingUser) | |
32 | { | |
33 | $objectTypeID = ModerationQueueReportManager::getInstance()->getObjectTypeID('com.woltlab.wcf.user'); | |
34 | ||
35 | $originalUser = WCF::getUser(); | |
36 | WCF::getSession()->changeUser($reportingUser->getDecoratedObject(), true); | |
37 | ||
38 | ModerationQueueReportManager::getInstance()->addReport( | |
39 | ObjectTypeCache::getInstance()->getObjectType($objectTypeID)->objectType, | |
40 | $reportedUser->userID, | |
41 | 'Report Message' | |
42 | ); | |
43 | ||
44 | WCF::getSession()->changeUser($originalUser, true); | |
45 | ||
46 | $sql = "SELECT * | |
47 | FROM wcf" . WCF_N . "_moderation_queue | |
48 | WHERE objectTypeID = ? | |
49 | AND objectID = ?"; | |
50 | $statement = WCF::getDB()->prepareStatement($sql); | |
51 | $statement->execute([$objectTypeID, $reportedUser->userID]); | |
52 | ||
53 | $moderationQueue = $statement->fetchObject(ModerationQueue::class); | |
54 | ||
55 | ModerationQueueManager::getInstance()->setAssignment([$moderationQueue->queueID => true]); | |
56 | ||
57 | return $moderationQueue; | |
58 | } | |
e0c10ca7 | 59 | } |