permission.ctrl.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. $modulename = $_GPC['m'];
  3. $check = module_solution_check($modulename);
  4. if(is_error($check)) {
  5. message($check['message'], '', 'error');
  6. }
  7. $module_types = module_types();
  8. $module = module_fetch($modulename);
  9. define('ACTIVE_FRAME_URL', url('home/welcome/ext', array('m' => $modulename)));
  10. $username = pdo_fetchcolumn('SELECT username FROM' . tablename('users') . ' WHERE uid = :uid', array(':uid' => intval($_GPC['uid'])));
  11. $entries = module_entries($modulename, array('menu', 'rule', 'function'));
  12. if(!empty($entries)) {
  13. foreach($entries as $index1 => &$entry1) {
  14. foreach($entry1 as $index2 => &$entry2) {
  15. $url_arr = parse_url($entry2['url']);
  16. $url_query = $url_arr['query'];
  17. parse_str($url_query, $query_arr);
  18. $eid = intval($query_arr['eid']);
  19. $data = pdo_fetch('SELECT * FROM ' . tablename('modules_bindings') . ' WHERE eid = :eid', array(':eid' => $eid));
  20. $entry2['eid'] = $eid;
  21. if($entry2['from'] == 'call') {
  22. $entry2['eid'] = 0;
  23. }
  24. $entry2['do'] = $data['do'];
  25. $entry2['state'] = $data['state'];
  26. $entry2['dostate'] = $data['do'] . $data['state'];
  27. $shuju[$index1][$i] = $entry2;
  28. $i ++;
  29. }
  30. }
  31. }
  32. unset($entries);
  33. $uid = intval($_GPC['uid']);
  34. if(checksubmit('submit')) {
  35. pdo_delete('solution_acl', array('uid' => $uid, 'module' => $modulename));
  36. if(!empty($_GPC['enable'])) {
  37. foreach($_GPC['enable'] as $index => $value) {
  38. $data = array(
  39. 'eid' => intval($_GPC['eid'][$index]),
  40. 'uid' => $uid,
  41. 'do' => $_GPC['do'][$index],
  42. 'state' => $_GPC['state'][$index],
  43. 'title' => $_GPC['title'][$index],
  44. 'module' => $modulename,
  45. 'enable' => intval($_GPC['enable'][$index])
  46. );
  47. pdo_insert('solution_acl', $data);
  48. unset($data);
  49. }
  50. }
  51. message('设置用户权限成功.',url('profile/permission/', array('m' => $modulename, 'uid' => $uid)));
  52. }
  53. $userdata = pdo_fetchall('SELECT * FROM ' . tablename('solution_acl') . ' WHERE uid = :uid AND module = :module', array(':uid' => $uid, ':module' => $modulename), 'do');
  54. foreach($userdata as $udata) {
  55. $index = $udata['do'] . $udata['state'];
  56. $usdata[$index] = $udata['do'] . $udata['state'];
  57. }
  58. template('profile/permission');