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

miaoxing / admin / 12464722770

23 Dec 2024 09:41AM UTC coverage: 20.251%. Remained the same
12464722770

push

github

twinh
fix(admin): 不能禁用超级管理员

19 of 80 branches covered (23.75%)

145 of 716 relevant lines covered (20.25%)

2.43 hits per line

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

0.0
/src/AdminPlugin.php
1
<?php
2

3
namespace Miaoxing\Admin;
4

5
use Miaoxing\Admin\Service\AdminMenu;
6
use Miaoxing\App\Middleware\CheckPagePermission;
7
use Miaoxing\App\Service\PermissionMap;
8
use Miaoxing\Plugin\BasePage;
9
use Miaoxing\Plugin\BasePlugin;
10
use Miaoxing\Plugin\Service\User;
11
use Wei\RetTrait;
12

13
/**
14
 * @mixin \PermissionPropMixin
15
 */
16
class AdminPlugin extends BasePlugin
17
{
18
    use RetTrait;
19

20
    protected $name = '后台';
21

22
    protected $description = '提供后台布局,头部菜单,侧边栏菜单等功能';
23

24
    protected $code = 203;
25

26
    public function onAdminMenuGetMenus(AdminMenu $menu)
27
    {
28
        $user = $menu->addChild('user')
×
29
            ->setLabel('用户')
×
30
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/user.svg')
×
31
            ->setSort(700);
×
32

33
        $menu->addChild('content')
×
34
            ->setLabel('内容')
×
35
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/book.svg')
×
36
            ->setSort(500);
×
37

38
        $menu->addChild('marketing')
×
39
            ->setLabel('营销')
×
40
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/gift.svg')
×
41
            ->setSort(400);
×
42

43
        $setting = $menu->addChild('setting')
×
44
            ->setLabel('设置')
×
45
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/setting.svg')
×
46
            ->setSort(300);
×
47

48
        $system = $menu->addChild('system')
×
49
            ->setLabel('系统')
×
50
            ->setSort(200)
×
51
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/control.svg');
×
52

53
        $mine = $menu->addChild('mine')->setLabel('我的')->setIsShow(false);
×
54
        $mine->addChild()->setLabel('修改密码')->setUrl('admin/password')
×
55
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/lock.svg');
×
56
        $mine->addChild()->setLabel('修改资料')->setUrl('admin/user')
×
57
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/user.svg');
×
58

59
        $admins = $user->addChild()->setLabel('管理员管理')->setUrl('admin/admins');
×
60
        $admins->addChild()->setUrl('admin/admins/new')->setLabel('添加');
×
61
        $admins->addChild()->setUrl('admin/admins/[id]/edit')->setLabel('编辑');
×
62

63
        $groups = $user->addChild()->setLabel('分组管理')->setUrl('admin/groups');
×
64
        $groups->addChild()->setLabel('添加')->setUrl('admin/groups/new');
×
65
        $groups->addChild()->setLabel('编辑')->setUrl('admin/groups/[id]/edit');
×
66
        $groups->addChild()->setLabel('删除')->setUrl('admin/groups/[id]/delete');
×
67

68
        if ($this->permission->isEnabledRoleManage()) {
×
69
            $roles = $user->addChild()->setLabel('角色管理')->setUrl('admin/roles');
×
70
            $roles->addChild()->setLabel('添加')->setUrl('admin/roles/new');
×
71
            $roles->addChild()->setLabel('编辑')->setUrl('admin/roles/[id]/edit');
×
72
            $roles->addChild()->setLabel('删除')->setUrl('admin/roles/delete');
×
73
        }
74

75
        if ($this->permission->isEnabledPermissionManage()) {
×
76
            $permissions = $user->addChild()->setLabel('权限管理')->setUrl('admin/permissions');
×
77
            $permissions->addChild()->setLabel('添加')->setUrl('admin/permissions/new');
×
78
            $permissions->addChild()->setLabel('编辑')->setUrl('admin/permissions/[id]/edit');
×
79
            $permissions->addChild()->setLabel('删除')->setUrl('admin/permissions/[id]/delete');
×
80
        }
81

82
        $system->addChild()->setLabel('系统设置')->setUrl('admin/global/settings')->setSort(10);
×
83

84
        $menus = $system->addChild()->setLabel('菜单管理')->setUrl('admin/admin-menus');
×
85
        $menus->addChild()->setLabel('添加')->setUrl('admin/admin-menus/new');
×
86
        $menus->addChild()->setLabel('编辑')->setUrl('admin/admin-menus/[id]/edit');
×
87
        $menus->addChild()->setLabel('删除')->setUrl('admin/admin-menus/[id]/delete');
×
88
        $menus->addChild()->setLabel('重置')->setUrl('admin/admin-menus#reset');
×
89
    }
90

91
    public function onPermissionGetMap(PermissionMap $map)
92
    {
93
        $map->prefix('admin/admins', static function (PermissionMap $map) {
×
94
            $map->addList('', [
×
95
                'GET api/admin/groups',
×
96
            ]);
×
97
            $map->addNew('', [
×
98
                'GET api/admin/groups',
×
99
            ]);
×
100
            $map->addEdit('', [
×
101
                'GET api/admin/groups',
×
102
            ]);
×
103
        });
×
104

105
        $map->prefix('admin/groups', static function (PermissionMap $map) {
×
106
            $map->addList();
×
107
            $map->addNew('', [
×
108
                'GET api/admin/groups',
×
109
            ]);
×
110
            $map->addEdit('', [
×
111
                'GET api/admin/groups',
×
112
            ]);
×
113
            $map->addDelete();
×
114
        });
×
115

116
        $map->prefix('admin/roles', static function (PermissionMap $map) {
×
117
            $map->addList();
×
118
            $map->addNew('', [
×
119
                'GET api/admin/permissions',
×
120
            ]);
×
121
            $map->addEdit('', [
×
122
                'GET api/admin/permissions',
×
123
            ]);
×
124
            $map->addDelete();
×
125
        });
×
126

127
        $map->prefix('admin/permissions', static function (PermissionMap $map) {
×
128
            $map->addList();
×
129
            $map->addNew();
×
130
            $map->addEdit();
×
131
            $map->addDelete();
×
132
        });
×
133

134
        $map->prefix('admin/admin-menus', static function (PermissionMap $map) {
×
135
            $map->addList();
×
136
            $map->addNew();
×
137
            $map->addEdit();
×
138
            $map->addDelete();
×
139
            $map->add('#reset', [
×
140
                'POST api/admin/admin-menus/reset',
×
141
            ]);
×
142
        });
×
143

144
        $map->add('admin/global/settings', [
×
145
            'PATCH api/admin/global/settings',
×
146
        ]);
×
147
    }
148

149
    public function onPageInit(BasePage $page)
150
    {
151
        if ($this->app->isAdmin() && $this->permission->isEnabledCheck()) {
×
152
            $page->middleware(CheckPagePermission::class);
×
153
        }
154
    }
155

156
    public function onCheckAuth()
157
    {
158
        if (!$this->app->isAdmin()) {
×
159
            return;
×
160
        }
161

162
        $ret = User::checkLogin();
×
163
        if ($ret->isErr()) {
×
164
            // 指定后台登录的地址
165
            $ret['next'] = 'admin/login';
×
166
            return $ret;
×
167
        }
168

169
        if (!User::cur()->isAdmin) {
×
170
            return $this->err([
×
171
                'message' => '很抱歉,您没有权限访问当前页面',
×
172
                'next' => 'admin/login',
×
173
            ]);
×
174
        }
175
    }
176
}
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

© 2025 Coveralls, Inc