rabin hace 2 años
padre
commit
b1ff527df2
Se han modificado 5 ficheros con 42 adiciones y 17 borrados
  1. 12 5
      database/admin.php
  2. 1 0
      database/company.php
  3. 5 2
      src/Auth.php
  4. 8 4
      src/Company.php
  5. 16 6
      src/Database.php

+ 12 - 5
database/admin.php

@@ -55,9 +55,14 @@ $group = function()
 	return Dever::load('manage/group-all');
 };
 
-$company_group = function() 
+$company = Dever::load('manage/company.get');
+$company_group = function() use($company)
 {
-	$data = Dever::db('manage/company')->all();
+	$where = array();
+	if ($company > 1) {
+		$where['id'] = $company;
+	}
+	$data = Dever::db('manage/company')->all($where);
 	if ($data) {
 		foreach ($data as $k => $v) {
 			$data[$k]['child'] = Dever::db('manage/group')->all(array('company_id' => $v['id']));
@@ -231,7 +236,6 @@ return array
 			'search'	=> 'order',
 			'list'		=> true,
 		),
-
 		/*
 		'company_id'       => array
 		(
@@ -714,7 +718,7 @@ return array
                     'update_search' => 'scm_product/lib/manage.searchProduct?{id}{role,company}',
                 ),
 			),*/
-			'list'		=> 'Dever::load("manage/company.getGroupName", "{group}")',
+			'list'		=> 'Dever::load("manage/company.getGroupName", "{company}", "{group}")',
 			# 取代option,从接口里读取选项
 			//'update_search' => 'goods/lib/manage.search_sku',
 		),
@@ -726,7 +730,7 @@ return array
 			'default' 	=> '',
 			'desc' 		=> '请选择功能权限',
 			'match' 	=> 'option',
-			'update'	=> 'checkbox',
+			'update'	=> $company == 0 ? 'checkbox' : false,
 			//每个项对应的一个input以及父级更新的类型
 			//'update_input' => '数量',
 			//'update_parent' => 'radio',
@@ -798,6 +802,8 @@ return array
 
 	'manage' => array
 	(
+		# 开放子管理权限,该列表和所有操作都有权限控制
+		//'auth' => true,
 		# 设置公司权限
 		//'company' => 'company_id',
 		# 后台提交时,检测该值是否为空,多个用逗号隔开
@@ -1091,6 +1097,7 @@ return array
         'list_option' => array
         (
         	'col' => array('yes-username,mobile', 'like'),
+        	'company' => array($company > 0 ? ','.$company.',' : 0, 'like_num'),
         	'state' => 1,
         ),
 	),

+ 1 - 0
database/company.php

@@ -26,6 +26,7 @@ return array
     'lang' => '公司管理',
     'order' => 7,
     'menu' => false,
+    //'auto' => 10000000,
     'end' => array
     (
         'update' => 'manage/company.update',

+ 5 - 2
src/Auth.php

@@ -45,8 +45,11 @@ class Auth
     }
 
     # 检测菜单权限和功能
-    public function check($name, $menu, $func = false)
+    public function check($name, $key, $func = false)
     {
+        if (strstr($name, '回收站') || strstr($name, '返回上一页') || strstr($name, '删除')) {
+            return true;
+        }
         $config = array
         (
             '列表' => 1,
@@ -65,7 +68,7 @@ class Auth
             }
             $reorder = $config[$name];
         }
-        return $this->checkFunc($menu, $func, $name, $reorder);
+        return $this->checkFunc($key, $func, $name, $reorder);
     }
 
     # 检测功能

+ 8 - 4
src/Company.php

@@ -11,7 +11,7 @@ class Company extends Save
     public function getAuth()
     {
         $auth = Dever::load('manage/auth')->info();
-        if ($auth['company']) {
+        if ($auth && $auth['company']) {
             
             return $auth['company'];
         }
@@ -39,7 +39,10 @@ class Company extends Save
     # 获取公司权限
     public function get()
     {
-        $company_id = $this->_get('company');
+        if (Dever::config('base')->company_id) {
+            return Dever::config('base')->company_id;
+        }
+        Dever::config('base')->company_id = $company_id = $this->_get('company');
         /*
         if ($company_id) {
             $auth = $this->getAuth();
@@ -53,7 +56,7 @@ class Company extends Save
         if (!$company_id) {
             $company = $this->getData();
             if ($company) {
-                $company_id = $company[0]['id'];
+                Dever::config('base')->company_id = $company_id = $company[0]['id'];
                 $this->set($company_id);
             } else {
                 $company_id = false;
@@ -75,6 +78,7 @@ class Company extends Save
                 }
             }
         }
+        
         return $company_id;
     }
 
@@ -210,7 +214,7 @@ class Company extends Save
         return 'ok';
     }
 
-    public function getGroupName($group)
+    public function getGroupName($company, $group)
     {
         if (!$group) {
             return '';

+ 16 - 6
src/Database.php

@@ -1325,7 +1325,7 @@ class Database
 
         # 列表页按钮
         if ($button) {
-            $result .= $this->list_button_show($button, $suffix);
+            $result .= $this->list_button_show($button, $suffix, $config);
         }
         /*
         if (Dever::load('manage/auth.oper', 6) != false && isset($config['manage']['button'])) {
@@ -1391,7 +1391,7 @@ class Database
         return $result;
     }
 
-    private function list_button_show($button, $suffix = '')
+    private function list_button_show($button, $suffix = '', $config = array())
     {
         $result = '';
         $refer = Dever::input('refer');
@@ -1405,11 +1405,9 @@ class Database
                 continue;
             }
             # 增加细分权限
-            /*
-            if (!Dever::load('manage/auth.check', $k, $this->menu_id)) {
+            if ($config && isset($config['manage']['auth']) && $config['manage']['auth'] && !Dever::load('manage/auth.check', $config['lang'] . '-' . $k, $this->menu_id)) {
                 continue;
             }
-            */
 
             if (is_array($v)) {
                 if ($v[0] == 'location') {
@@ -1524,6 +1522,12 @@ class Database
 
         $config = $this->config();
 
+        # 增加细分权限
+        /*
+        if ($config && isset($config['manage']['auth']) && $config['manage']['auth'] && !Dever::load('manage/auth.check', $config['lang'] . '-' . '搜索', $this->menu_id)) {
+            return '';
+        }*/
+
         $result = '';
         $top_result = '';
 
@@ -1831,7 +1835,7 @@ class Database
 
             # 列表页按钮
             if (isset($config['manage']['search_button'])) {
-                $btn .= $this->list_button_show($config['manage']['search_button']);
+                $btn .= $this->list_button_show($config['manage']['search_button'], '', $config);
             }
 
             $result .= $btn . $node[1];
@@ -3023,6 +3027,7 @@ class Database
             }
 
             foreach ($config['manage']['_list']['value'] as $kj => $vj) {
+                
                 $pj = false;
 
                 $h = '<span class="am-icon-pencil-square-o"></span>';
@@ -3047,6 +3052,11 @@ class Database
                     $vjn = $vj;
                 }
 
+                # 增加细分权限
+                if ($config && isset($config['manage']['auth']) && $config['manage']['auth'] && !Dever::load('manage/auth.check', $config['lang'] . '-' . $vjn, $this->menu_id)) {
+                    continue;
+                }
+
                 if ($oper == true) {
                     $this->manage_button = true;
                     if ($kj == 'delete') {