Add a user parameter to check whether the user is allowed to moderate this comment.
authorCyperghost <olaf_schmitz_1@t-online.de>
Wed, 20 Mar 2024 09:56:14 +0000 (10:56 +0100)
committerCyperghost <olaf_schmitz_1@t-online.de>
Wed, 20 Mar 2024 09:56:14 +0000 (10:56 +0100)
wcfsetup/install/files/lib/system/comment/manager/AbstractCommentManager.class.php
wcfsetup/install/files/lib/system/comment/manager/ICommentManager.class.php

index 33c2ac44667f1070d8480edd2dd9d4e38f4db5fa..7a1a8d016360d32c44360996c8f749d32f9f338c 100644 (file)
@@ -5,6 +5,7 @@ namespace wcf\system\comment\manager;
 use wcf\data\comment\Comment;
 use wcf\data\comment\response\CommentResponse;
 use wcf\data\DatabaseObjectDecorator;
+use wcf\data\user\UserProfile;
 use wcf\system\bbcode\BBCodeHandler;
 use wcf\system\SingletonFactory;
 use wcf\system\WCF;
@@ -153,10 +154,14 @@ abstract class AbstractCommentManager extends SingletonFactory implements IComme
     }
 
     /**
+     * @param UserProfile|null $user
      * @inheritDoc
      */
-    public function canModerate($objectTypeID, $objectID)
+    public function canModerate($objectTypeID, $objectID, ?UserProfile $user = null)
     {
+        if ($user !== null) {
+            return $user->getPermission($this->permissionCanModerate) ? true : false;
+        }
         return WCF::getSession()->getPermission($this->permissionCanModerate) ? true : false;
     }
 
index 90bb0602d2f3cbcb199ceb9c3915f115a00e54f8..91b502e11c01aef50aa350c684aaa86e08a69f71 100644 (file)
@@ -4,6 +4,7 @@ namespace wcf\system\comment\manager;
 
 use wcf\data\comment\Comment;
 use wcf\data\comment\response\CommentResponse;
+use wcf\data\user\UserProfile;
 
 /**
  * Default interface for comment managers.
@@ -62,14 +63,15 @@ interface ICommentManager
     public function canDeleteResponse(CommentResponse $response);
 
     /**
-     * Returns true if the current user may moderated content identified by
+     * Returns true if the current or given user may moderated content identified by
      * object type id and object id.
      *
      * @param int $objectTypeID
      * @param int $objectID
+     * @param UserProfile|null $user
      * @return  bool
      */
-    public function canModerate($objectTypeID, $objectID);
+    public function canModerate($objectTypeID, $objectID, ?UserProfile $user = null);
 
     /**
      * Returns the amount of comments per page.