• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

LM-Commons / LmcRbac / 9229894158

24 May 2024 09:02PM UTC coverage: 85.563% (-14.4%) from 100.0%
9229894158

push

github

web-flow
Merge pull request #50 from visto9259/2.x

Refactored factories

47 of 47 new or added lines in 7 files covered. (100.0%)

41 existing lines in 6 files now uncovered.

243 of 284 relevant lines covered (85.56%)

3.46 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Container/ObjectRepositoryRoleProviderFactory.php
1
<?php
2

3
/*
4
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
5
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
6
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
7
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
8
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
10
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
11
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
12
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
13
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
14
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15
 *
16
 * This software consists of voluntary contributions made by many individuals
17
 * and is licensed under the MIT license.
18
 */
19

20
declare(strict_types=1);
21

22
namespace LmcRbac\Container;
23

24
use LmcRbac\Exception;
25
use LmcRbac\Options\ModuleOptions;
26
use LmcRbac\Role\ObjectRepositoryRoleProvider;
27
use Psr\Container\ContainerInterface;
28

29
/**
30
 * Factory used to create an object repository role provider
31
 *
32
 * @author  Michaƫl Gallego <mic.gallego@gmail.com>
33
 * @licence MIT
34
 * @deprecated Replaced by LmcRbac\Role\ObjectRepositoryRoleProviderFactory
35
 */
36
final class ObjectRepositoryRoleProviderFactory
37
{
UNCOV
38
    public function __invoke(ContainerInterface $container): ObjectRepositoryRoleProvider
×
39
    {
UNCOV
40
        $moduleOptions = $container->get(ModuleOptions::class);
×
UNCOV
41
        $options = $moduleOptions->getRoleProvider()[ObjectRepositoryRoleProvider::class] ?? [];
×
42

UNCOV
43
        if (! isset($options['role_name_property'])) {
×
UNCOV
44
            throw new Exception\RuntimeException('The "role_name_property" option is missing');
×
45
        }
46

UNCOV
47
        if (isset($options['object_repository'])) {
×
UNCOV
48
            $objectRepository = $container->get($options['object_repository']);
×
49

UNCOV
50
            return new ObjectRepositoryRoleProvider($objectRepository, $options['role_name_property']);
×
51
        }
52

UNCOV
53
        if (isset($options['object_manager'], $options['class_name'])) {
×
UNCOV
54
            $objectManager = $container->get($options['object_manager']);
×
UNCOV
55
            $objectRepository = $objectManager->getRepository($options['class_name']);
×
56

UNCOV
57
            return new ObjectRepositoryRoleProvider($objectRepository, $options['role_name_property']);
×
58
        }
59

UNCOV
60
        throw new Exception\RuntimeException(
×
UNCOV
61
            'No object repository was found while creating the LmcRbac object repository role provider. Are
×
UNCOV
62
             you sure you specified either the "object_repository" option or "object_manager"/"class_name" options?'
×
UNCOV
63
        );
×
64
    }
65
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc