__load__.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # -*- coding: utf-8 -*-
  2. from demeter.web import *
  3. class Load(Base):
  4. KEYS = ('admin',)
  5. def setting(self):
  6. self.search()
  7. self.admin()
  8. def admin(self):
  9. self.data['auth'] = True
  10. if 'admin' in self.data['setting'] and self.data['setting']['admin'] > 0:
  11. self.data['setting']['adminInfo'] = self.service('common').one('manage_admin', id=self.data['setting']['admin'])
  12. if self.data['setting']['adminInfo']:
  13. self.data['setting']['roleInfo'] = self.service('common').one('manage_role', id=self.data['setting']['adminInfo']['role_id'])
  14. else:
  15. #self.redirect('/user/login')
  16. return
  17. self.data['setting']['menuList'] = self.menu()
  18. if self.data['setting']['adminInfo']['id'] == admin:
  19. if 'menu' in self.data['setting']:
  20. del self.data['setting']['menu']
  21. else:
  22. self.data['setting']['menu'] = ['_/', '_/login', '_/main', '_/admin/log_update']
  23. menu = self.data['setting']['roleInfo']['auth'] + ','
  24. for i,j in enumerate(self.data['setting']['menuList'][1]):
  25. m = 0
  26. for n in j[1]:
  27. if n+',' in menu:
  28. l = str(i)+'_'+str(n)
  29. self.data['setting']['menu'].append(l)
  30. self.data['setting']['menu'].append(l + '_update')
  31. m = m + 1
  32. self.data['setting']['menu'] = ',' + ",".join(self.data['setting']['menu'])+','
  33. uri = '_' + self.request.uri + ','
  34. if self.data['setting']['admin'] != admin and uri not in self.data['setting']['menu']:
  35. self.data['auth'] = False
  36. if 'web' in Demeter.config and 'url' in Demeter.config['web']:
  37. self.data['setting']['web'] = Demeter.config['web']['url']
  38. def menu(self):
  39. parent_str = Demeter.config['admin']['menu_parent']
  40. child_str = Demeter.config['admin']['menu_child']
  41. parent_str = parent_str + ',基础设置:'
  42. child_str = child_str + ';管理员设置:/admin/admin,管理权限设置:/admin/role,系统日志:/admin/log'
  43. parent = self.getMenu(parent_str)
  44. child = []
  45. temp = child_str.split(';')
  46. for i in temp:
  47. child.append(self.getMenu(i))
  48. return (parent,child)
  49. def getMenu(self, string):
  50. menu = []
  51. menu.append([])
  52. menu.append([])
  53. temp = string.split(',')
  54. for i in temp:
  55. t = i.split(':')
  56. menu[0].append(t[0])
  57. menu[1].append(t[1])
  58. return menu