change access and parameter
Signed-off-by: dartcafe <github@dartcafe.de>
This commit is contained in:
Родитель
4edffe7558
Коммит
cb574cdb0f
|
@ -31,7 +31,6 @@ use OCA\Polls\Db\CommentMapper;
|
|||
use OCA\Polls\Db\Option;
|
||||
use OCA\Polls\Db\OptionMapper;
|
||||
use OCA\Polls\Db\Poll;
|
||||
use OCA\Polls\Model\UserGroup\UserBase;
|
||||
|
||||
class AnonymizeService {
|
||||
|
||||
|
@ -142,22 +141,11 @@ class AnonymizeService {
|
|||
|
||||
/**
|
||||
* Replaces userIds with displayName to avoid exposing usernames in public polls
|
||||
*
|
||||
* @param (Comment|Option|Poll|Vote)[]|Comment|Option|Poll|Vote $arrayOrObject
|
||||
*
|
||||
* @return (Comment|Option|Poll|Vote)[]|Comment|Option|Poll|Vote
|
||||
*
|
||||
* @psalm-return Comment|Option|Poll|Vote|array<Comment|Option|Poll|Vote>
|
||||
*/
|
||||
public static function replaceUserId($arrayOrObject, ?string $token = null) {
|
||||
$shareUser = null;
|
||||
if ($token) {
|
||||
$shareUser = UserBase::getUserGroupChildFromShare($token);
|
||||
}
|
||||
|
||||
public static function replaceUserId(&$arrayOrObject, string $userId) : void {
|
||||
if (is_array($arrayOrObject)) {
|
||||
foreach ($arrayOrObject as $item) {
|
||||
if ($shareUser && $shareUser->getId() === $item->getUserId()) {
|
||||
if ($item->getUserId() === $userId) {
|
||||
continue;
|
||||
}
|
||||
if ($item instanceof Comment || $item instanceof Vote) {
|
||||
|
@ -167,11 +155,11 @@ class AnonymizeService {
|
|||
$item->setOwner($item->getDisplayName());
|
||||
}
|
||||
}
|
||||
return $arrayOrObject;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($shareUser && $shareUser->getId() === $arrayOrObject->getUserId()) {
|
||||
return $arrayOrObject;
|
||||
if ($arrayOrObject->getUserId() === $userId) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($arrayOrObject instanceof Option || $arrayOrObject instanceof Poll) {
|
||||
|
@ -182,6 +170,6 @@ class AnonymizeService {
|
|||
$arrayOrObject->setUserId($arrayOrObject->getDisplayName());
|
||||
}
|
||||
|
||||
return $arrayOrObject;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,11 +65,10 @@ class CommentService {
|
|||
* Get comments
|
||||
* Read all comments of a poll based on the poll id and return list as array
|
||||
*
|
||||
* @return (Comment|\OCA\Polls\Db\Option|\OCA\Polls\Db\Poll|\OCA\Polls\Db\Vote|mixed)[]|Comment|\OCA\Polls\Db\Option|\OCA\Polls\Db\Poll|\OCA\Polls\Db\Vote
|
||||
* @return Comment[]
|
||||
*
|
||||
* @psalm-return Comment|\OCA\Polls\Db\Option|\OCA\Polls\Db\Poll|\OCA\Polls\Db\Vote|array<Comment|\OCA\Polls\Db\Option|\OCA\Polls\Db\Poll|\OCA\Polls\Db\Vote|mixed>
|
||||
*/
|
||||
public function listFlat(?int $pollId = 0, string $token = '') {
|
||||
public function listFlat(?int $pollId = 0, string $token = '') : array {
|
||||
if ($token) {
|
||||
$this->acl->setToken($token);
|
||||
} else {
|
||||
|
@ -81,7 +80,7 @@ class CommentService {
|
|||
|
||||
if (!$this->acl->getIsLoggedIn()) {
|
||||
// if participant is not logged in avoid leaking user ids
|
||||
$comments = $this->anonymizer->replaceUserId($comments, $token);
|
||||
AnonymizeService::replaceUserId($comments, $this->acl->getUserId());
|
||||
}
|
||||
|
||||
return $comments;
|
||||
|
|
|
@ -132,7 +132,7 @@ class OptionService {
|
|||
|
||||
if (!$this->acl->getIsLoggedIn()) {
|
||||
// if participant is not logged in avoid leaking user ids
|
||||
$this->options = $this->anonymizer->replaceUserId($this->options, $token);
|
||||
AnonymizeService::replaceUserId($this->options, $this->acl->getUserId());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -193,18 +193,14 @@ class PollService {
|
|||
|
||||
/**
|
||||
* get poll configuration
|
||||
*
|
||||
* @return (Poll|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Option)[]|Poll|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Option
|
||||
*
|
||||
* @psalm-return Poll|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Option|array<Poll|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Option>
|
||||
*/
|
||||
public function get(int $pollId) {
|
||||
public function get(int $pollId) : Poll {
|
||||
$this->acl->setPollId($pollId);
|
||||
$this->poll = $this->pollMapper->find($pollId);
|
||||
|
||||
if (!$this->acl->getIsLoggedIn()) {
|
||||
// if participant is not logged in avoid leaking user ids
|
||||
return AnonymizeService::replaceUserId($this->poll);
|
||||
AnonymizeService::replaceUserId($this->poll, $this->acl->getUserId());
|
||||
}
|
||||
return $this->poll;
|
||||
}
|
||||
|
|
|
@ -74,11 +74,9 @@ class VoteService {
|
|||
/**
|
||||
* Read all votes of a poll based on the poll id and return list as array
|
||||
*
|
||||
* @return (Option|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Poll|mixed)[]|Option|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Poll
|
||||
*
|
||||
* @psalm-return Option|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Poll|array<Option|Vote|\OCA\Polls\Db\Comment|\OCA\Polls\Db\Poll|mixed>
|
||||
* @return Vote[]
|
||||
*/
|
||||
public function list(int $pollId = 0, string $token = '') {
|
||||
public function list(int $pollId = 0, string $token = '') : array {
|
||||
if ($token) {
|
||||
$this->acl->setToken($token);
|
||||
} else {
|
||||
|
@ -99,7 +97,7 @@ class VoteService {
|
|||
|
||||
if (!$this->acl->getIsLoggedIn()) {
|
||||
// if participant is not logged in avoid leaking user ids
|
||||
$votes = $this->anonymizer->replaceUserId($votes, $token);
|
||||
AnonymizeService::replaceUserId($votes, $this->acl->getUserId());
|
||||
}
|
||||
} catch (DoesNotExistException $e) {
|
||||
$votes = [];
|
||||
|
|
Загрузка…
Ссылка в новой задаче