Code Duplication    Length = 20-20 lines in 3 locations

eZ/Publish/Core/Repository/LocationService.php 3 locations

@@ 131-150 (lines=20) @@
128
         * @var bool|\eZ\Publish\API\Repository\Values\Content\Query\Criterion
129
         */
130
        $contentReadCriterion = $this->permissionsCriterionHandler->getPermissionsCriterion();
131
        if ($contentReadCriterion === false) {
132
            throw new UnauthorizedException('content', 'read');
133
        } elseif ($contentReadCriterion !== true) {
134
            // Query if there are any content in subtree current user don't have access to
135
            $query = new Query(
136
                array(
137
                    'limit' => 0,
138
                    'filter' => new CriterionLogicalAnd(
139
                        array(
140
                            new CriterionSubtree($loadedSubtree->pathString),
141
                            new CriterionLogicalNot($contentReadCriterion),
142
                        )
143
                    ),
144
                )
145
            );
146
            $result = $this->repository->getSearchService()->findContent($query, array(), false);
147
            if ($result->totalCount > 0) {
148
                throw new UnauthorizedException('content', 'read');
149
            }
150
        }
151
152
        $this->repository->beginTransaction();
153
        try {
@@ 594-613 (lines=20) @@
591
         * @var bool|\eZ\Publish\API\Repository\Values\Content\Query\Criterion
592
         */
593
        $contentReadCriterion = $this->permissionsCriterionHandler->getPermissionsCriterion();
594
        if ($contentReadCriterion === false) {
595
            throw new UnauthorizedException('content', 'read');
596
        } elseif ($contentReadCriterion !== true) {
597
            // Query if there are any content in subtree current user don't have access to
598
            $query = new Query(
599
                array(
600
                    'limit' => 0,
601
                    'filter' => new CriterionLogicalAnd(
602
                        array(
603
                            new CriterionSubtree($location->pathString),
604
                            new CriterionLogicalNot($contentReadCriterion),
605
                        )
606
                    ),
607
                )
608
            );
609
            $result = $this->repository->getSearchService()->findContent($query, array(), false);
610
            if ($result->totalCount > 0) {
611
                throw new UnauthorizedException('content', 'read');
612
            }
613
        }
614
615
        if (strpos($newParentLocation->pathString, $location->pathString) === 0) {
616
            throw new InvalidArgumentException(
@@ 673-692 (lines=20) @@
670
         * @var bool|\eZ\Publish\API\Repository\Values\Content\Query\Criterion
671
         */
672
        $contentReadCriterion = $this->permissionsCriterionHandler->getPermissionsCriterion('content', 'remove');
673
        if ($contentReadCriterion === false) {
674
            throw new UnauthorizedException('content', 'remove');
675
        } elseif ($contentReadCriterion !== true) {
676
            // Query if there are any content in subtree current user don't have access to
677
            $query = new Query(
678
                array(
679
                    'limit' => 0,
680
                    'filter' => new CriterionLogicalAnd(
681
                        array(
682
                            new CriterionSubtree($location->pathString),
683
                            new CriterionLogicalNot($contentReadCriterion),
684
                        )
685
                    ),
686
                )
687
            );
688
            $result = $this->repository->getSearchService()->findContent($query, array(), false);
689
            if ($result->totalCount > 0) {
690
                throw new UnauthorizedException('content', 'remove');
691
            }
692
        }
693
694
        $this->repository->beginTransaction();
695
        try {