From: Alexander Smirnov Date: Mon, 16 Sep 2024 08:57:31 +0000 (+0300) Subject: [ERP-51] Показывает права в одной таблице X-Git-Tag: 1.7~96^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=bec6e3d338398d8988e76948b8b8aa6653c9dac8;p=erp24_rep%2Fyii-erp24%2F.git [ERP-51] Показывает права в одной таблице --- diff --git a/erp24/controllers/AuthController.php b/erp24/controllers/AuthController.php index 3c5a673a..f4d06822 100644 --- a/erp24/controllers/AuthController.php +++ b/erp24/controllers/AuthController.php @@ -219,4 +219,44 @@ class AuthController extends BaseController CrmMenu::deleteAll(['parent_id' => $id]); return $this->redirect('menu'); } + + public function actionMenuExport() { + $adminGroupMap = ArrayHelper::map(AdminGroup::find()->all(), 'id', 'name'); + $cellMap = []; + $adminGroups = []; + foreach (AdminGroupRbacConfig::find()->all() as /** @var AdminGroupRbacConfig $agrc */ $agrc) { + $adminGroups[$agrc->admin_group_id] = true; + $groups = explode(',', $agrc->config); + foreach($groups as $group) { + if (!empty($group)) { + $cellMap[$group][] = $agrc->admin_group_id; + } + } + } + + $permissions = []; + foreach (CrmMenu::find()->all() as $menu) { + $permission = 'menu' . $menu->url; + $permissions[$permission] = $menu->name; + $crmMenuPermissions = CrmMenuPermission::find()->where(['menu_id' => $menu->id])->all(); + foreach ($crmMenuPermissions as $menuPermission) { + $permissions[$menuPermission->alias] = $menu->name . ': ' . $menuPermission->name; + } + if ($menu->dynamic_list) { + $list = UniversalCatalog::getDynamicList($menu->dynamic_list); + if (isset($list)) { + foreach ($list as $item => $name) { + $url = 'menu' . $menu->url . "_" . $item; + $permissions[$url] = $menu->name . ': ' . $name; + foreach ($crmMenuPermissions as $menuPermission) { + $permissions[$menuPermission->alias . $item] = $menu->name . ': ' . $name . ': ' . $menuPermission->name; + } + } + } + } + } + + return $this->render('menu-export', compact('cellMap', 'adminGroups', 'adminGroupMap', + 'permissions')); + } } \ No newline at end of file diff --git a/erp24/views/auth/menu-export.php b/erp24/views/auth/menu-export.php new file mode 100644 index 00000000..dcf9d696 --- /dev/null +++ b/erp24/views/auth/menu-export.php @@ -0,0 +1,64 @@ +registerJsFile('/js/xlsx.full.min.js', ['position' => \yii\web\View::POS_END]); +$this->registerCss(".hidden { display: none; }"); + +?> + +
+ + + + + +
+ + + + $adminGroup): ?> + + + + + + + + + $perm): ?> + + + $adminGroup): ?> + + + + + + + + + + + + + + + + +
+
+ +
\ No newline at end of file diff --git a/erp24/web/js/auth/menu.js b/erp24/web/js/auth/menu.js index 13ee2b9b..6d3eae80 100644 --- a/erp24/web/js/auth/menu.js +++ b/erp24/web/js/auth/menu.js @@ -1,3 +1,5 @@ +/* jshint esversion: 6 */ + const param = $('meta[name=csrf-param]').attr('content'); const token = $('meta[name=csrf-token]').attr('content');