1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php namespace Manage\Lib;
- use Dever;
- class Role extends Auth
- {
- public function update($data)
- {
- if ($data['auth']) {
- $auth = explode(',', $data['auth']);
- $data['auth'] = array();
- $system = $menu = $func = array();
- foreach ($auth as $k => $v) {
- if (!strstr($v, '-')) {
- if (strstr($v, 'v')) {
- $menu[] = trim($v, 'v');
- } else {
- $func[] = $v;
- }
- $data['auth'][] = $v;
- }
- }
- if ($func) {
- $funcData = Dever::db('menu_func')->select(array('id' => array('in', $func)), array('group' => 'menu_id'));
- foreach ($funcData as $k => $v) {
- $menu[] = $v['menu_id'];
- }
- $menuData = Dever::db('menu')->select(array('id' => array('in', $menu)), array('group' => 'system_id'));
- foreach ($menuData as $k => $v) {
- $system[] = $v['system_id'];
- }
- }
- $data['auth'] = implode(',', $data['auth']);
- $data['menu'] = implode(',', $menu);
- $data['system'] = implode(',', $system);
- }
- return $data;
- }
- public function getAuthData()
- {
- $result = array();
- $system = Dever::db('system')->select([]);
- foreach ($system as $k => $v) {
- $result[$k]['value'] = 's-' . $v['id'];
- $result[$k]['label'] = $v['name'];
- $result[$k]['children'] = Dever::db('menu')->tree(array('system_id' => $v['id'], 'show' => array('<', '3')), array('parent_id', '0', 'id'), array($this, 'getAuthInfo'), array('col' => 'id,name as label,parent_id,`key`,func'));
- }
- return $result;
- }
- public function getAuthInfo($info)
- {
- if ($info['func'] == 1) {
- $info['value'] = 'm-' . $info['id'];
- $info['children'] = Dever::db('menu_func')->select(array('menu_id' => $info['id']), array('col' => 'id as value,name as label'));
- if (!$info['children']) {
- return array();
- }
- } else {
- $info['value'] = 'v' . $info['id'];
- }
- return $info;
- }
- # 展示系统
- public function showSystem($data)
- {
- return Dever::db('system')->show(array('id' => array('in', $data)));
- }
- # 展示菜单
- public function showMenu($data)
- {
- return Dever::db('menu')->show(array('id' => array('in', $data)));
- }
- # 展示权限
- public function showFunc($data)
- {
- return Dever::db('menu_func')->show(array('id' => array('in', $data)));
- }
- }
|