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

miaoxing / admin / 9706165293

28 Jun 2024 01:45AM UTC coverage: 24.307%. Remained the same
9706165293

push

github

twinh
feat: 更新 `onControllerInit` 为 `onPageInit`

20 of 82 branches covered (24.39%)

0 of 1 new or added line in 1 file covered. (0.0%)

149 of 613 relevant lines covered (24.31%)

2.81 hits per line

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

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

3
namespace Miaoxing\Admin;
4

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

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

22
    protected $name = '后台';
23

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

26
    protected $code = 203;
27

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

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

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

45
        $setting = $menu->addChild('setting')
×
46
            ->setLabel('设置')
×
47
            ->setIcon('https://cdnjs.cloudflare.com/ajax/libs/ant-design-icons-svg/4.3.1/outlined/setting.svg')
×
48
            ->setSort(300);
×
49
        $menu->addChild()->setLabel('修改密码')->setUrl('admin/password')->setExtra('visible', false)
×
50
            ->setExtra('permission', false);
×
51
        $menu->addChild()->setLabel('修改资料')->setUrl('admin/user')->setExtra('visible', false)
×
52
            ->setExtra('permission', false);
×
53

54
        $admins = $user->addChild()->setLabel('管理员管理')->setUrl('admin/admins');
×
55
        $admins->addChild()->setUrl('admin/admins/new')->setLabel('添加');
×
56
        $admins->addChild()->setUrl('admin/admins/[id]/edit')->setLabel('编辑');
×
57

58
        $groups = $user->addChild()->setLabel('分组管理')->setUrl('admin/groups');
×
59
        $groups->addChild()->setLabel('添加')->setUrl('admin/groups/new');
×
60
        $groups->addChild()->setLabel('编辑')->setUrl('admin/groups/[id]/edit');
×
61
        $groups->addChild()->setLabel('删除')->setUrl('admin/groups/[id]/delete');
×
62

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

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

77
        $setting->addChild()->setLabel('后台设置')->setUrl('admin/admin-settings')->setSort(10);
×
78
    }
79

80
    public function onPermissionGetMap(PermissionMap $map)
81
    {
82
        $map->prefix('admin/admins', static function (PermissionMap $map) {
×
83
            $map->addList('', [
×
84
                'GET api/admin/groups',
×
85
            ]);
×
86
            $map->addNew('', [
×
87
                'GET api/admin/groups',
×
88
            ]);
×
89
            $map->addEdit('', [
×
90
                'GET api/admin/groups',
×
91
            ]);
×
92
        });
×
93

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

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

116
        $map->prefix('admin/permissions', static function (PermissionMap $map) {
×
117
            $map->addList();
×
118
            $map->addNew();
×
119
            $map->addEdit();
×
120
            $map->addDelete();
×
121
        });
×
122

123
        $map->add('admin/admin-settings', [
×
124
            'PATCH api/admin/admin-settings',
×
125
        ]);
×
126
    }
127

128
    public function onPageInit(BasePage $page)
129
    {
130
        if ($this->app->isAdmin() && $this->permission->isEnabledCheck()) {
×
NEW
131
            $page->middleware(CheckPagePermission::class);
×
132
        }
133
    }
134

135
    public function onUserLogin(UserModel $user)
136
    {
137
        if ($user->isAdmin) {
20✔
138
            AdminLogModel::log('用户登陆', $user);
×
139
        }
140
    }
141

142
    public function onBeforeUserLogout(UserModel $user)
143
    {
144
        if ($user->isAdmin) {
×
145
            AdminLogModel::log('用户退出', $user);
×
146
        }
147
    }
148

149
    public function onCheckAuth()
150
    {
151
        if (!$this->app->isAdmin()) {
×
152
            return;
×
153
        }
154

155
        $ret = User::checkLogin();
×
156
        if ($ret->isErr()) {
×
157
            // 指定后台登录的地址
158
            $ret['next'] = 'admin/login';
×
159
            return $ret;
×
160
        }
161

162
        if (!User::cur()->isAdmin) {
×
163
            return $this->err([
×
164
                'message' => '很抱歉,您没有权限访问当前页面',
×
165
                'next' => 'admin/login',
×
166
            ]);
×
167
        }
168
    }
169
}
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