Test Failed
Push — master ( e3c39f...fe570d )
by Mihail
07:20
created

Apps/View/Admin/default/user/role_list.php (1 issue)

Check for conflicting imported classes with local classes.

Bug Major
1
<?php
2
3
use Ffcms\Core\Helper\Type\Str;
4
use Ffcms\Templex\Url\Url;
0 ignored issues
show
This use statement conflicts with another class in this namespace, Url. Consider defining an alias.

Let?s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let?s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/Foo.php are loaded in the same runtime, you will see a PHP error such as the following:

PHP Fatal error:  Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php

However, as OtherDir/Foo.php does not necessarily have to be loaded and the error is only triggered if it is loaded before OtherDir/Bar.php, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
5
6
/** @var \Ffcms\Templex\Template\Template $this */
7
/** @var \Apps\ActiveRecord\Role[]|\Illuminate\Support\Collection $records */
8
9
$this->layout('_layouts/default', [
10
    'title' => __('Role management'),
11
    'breadcrumbs' => [
12
        Url::to('main/index') => __('Main'),
13
        Url::to('application/index') => __('Applications'),
14
        __('Role management')
15
    ]
16
]);
17
?>
18
19
<?php $this->start('body') ?>
20
<?= $this->insert('user/_tabs') ?>
21
22
<h1><?= __('Role list') ?></h1>
23
24
<?php
25
$table = $this->table(['class' => 'table'])
26
    ->head([
27
        ['text' => __('Name')],
28
        ['text' => __('Permissions')],
29
        ['text' => __('Color')],
30
        ['text' => __('Actions'), 'properties' => ['class' => 'text-center']]
31
    ]);
32
?>
33
34
<?php
35
foreach($records as $role) {
36
    $permissions = explode(';', $role->permissions);
37
    $permissionsLabel = null;
38
    foreach ($permissions as $perm) {
39
        $labelMark = null;
40
        if (Str::startsWith('Admin/', $perm)) {
41
            $labelMark = 'badge-primary';
42
        } elseif ($perm === 'global/all') {
43
            $labelMark = 'badge-danger';
44
        } else {
45
            $labelMark = 'badge-secondary';
46
        }
47
        $permissionsLabel .= '<span class="badge ' . $labelMark . '">' . $perm . '</span> ';
48
    }
49
50
    $roleColor = '-';
51
    if ($role->color) {
52
        $roleColor = '<span class="badge badge-light" style="color: ' . $role->color . '">' . $role->color . '</span>';
53
    }
54
55
    $table->row([
56
        ['text' => $role->name],
57
        ['text' => $permissionsLabel, 'html' => true],
58
        ['text' => $roleColor, 'html' => true],
59
        ['text' => Url::a(['user/roleupdate', [$role->id]], '<i class="fa fa-pencil fa-lg"></i>', ['html' => true]), 'properties' => ['class' => 'text-center'], 'html' => true]
60
    ]);
61
}
62
?>
63
64
<div>
65
    <?= Url::a(['user/roleupdate'], __('Add role'), ['class' => 'btn btn-primary']) ?>
66
</div>
67
68
<div class="table-responsive">
69
    <?= $table->display() ?>
70
</div>
71
72
<?php $this->stop() ?>
73