__load__.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter load
  5. author:rabin
  6. """
  7. from demeter.web import *
  8. class Load(Base):
  9. KEYS = ('admin', 'farm')
  10. def setting(self):
  11. self.search()
  12. self.admin()
  13. def admin(self):
  14. admin = 1
  15. self.data['auth'] = True
  16. if 'admin' in Demeter.config['setting'] and Demeter.config['setting']['admin'] > 0:
  17. if 'adminInfo' not in Demeter.config['setting'] or ('adminInfo' in Demeter.config['setting'] and Demeter.config['setting']['admin'] != Demeter.config['setting']['adminInfo']):
  18. Demeter.config['setting']['adminInfo'] = self.service('common').one('manage_admin', id=Demeter.config['setting']['admin'])
  19. if Demeter.config['setting']['adminInfo']:
  20. Demeter.config['setting']['roleInfo'] = self.service('common').one('manage_role', id=Demeter.config['setting']['adminInfo']['role_id'])
  21. else:
  22. #self.redirect('/user/login')
  23. return
  24. if 'farm' in Demeter.config['setting'] and Demeter.config['setting']['farm'] > 0:
  25. if 'farmInfo' not in Demeter.config['setting'] or ('farmInfo' in Demeter.config['setting'] and Demeter.config['setting']['farm'] != Demeter.config['setting']['farmInfo']):
  26. Demeter.config['setting']['farmInfo'] = self.service('common').one('farm', id=Demeter.config['setting']['farm'])
  27. if not Demeter.config['setting']['farmInfo']:
  28. Demeter.config['setting']['farmInfo']['name'] = '默认'
  29. if 'menuList' not in Demeter.config['setting']:
  30. Demeter.config['setting']['menuList'] = self.menu()
  31. if Demeter.config['setting']['adminInfo']['id'] == admin:
  32. if 'menu' in Demeter.config['setting']:
  33. del Demeter.config['setting']['menu']
  34. else:
  35. if 'menu' not in Demeter.config['setting'] and 'roleInfo' in Demeter.config['setting']:
  36. Demeter.config['setting']['menu'] = ['_/', '_/login', '_/main', '_/admin/log_update']
  37. menu = Demeter.config['setting']['roleInfo']['auth'] + ','
  38. for i,j in enumerate(Demeter.config['setting']['menuList'][1]):
  39. m = 0
  40. for n in j[0]:
  41. if n+',' in menu:
  42. l = str(i)+'_'+str(n)
  43. Demeter.config['setting']['menu'].append(l)
  44. Demeter.config['setting']['menu'].append(l + '_update')
  45. m = m + 1
  46. Demeter.config['setting']['menu'] = ',' + ",".join(Demeter.config['setting']['menu'])+','
  47. uri = '_' + self.request.uri + ','
  48. if Demeter.config['setting']['admin'] != admin and uri not in Demeter.config['setting']['menu']:
  49. self.data['auth'] = False
  50. if 'farmList' not in Demeter.config['setting']:
  51. Demeter.config['setting']['farmList'] = self.service('common').list('farm')
  52. def menu(self):
  53. parent = [['农场与设备管理', '网站管理', '基础设置'],['', '', '']]
  54. child = [
  55. [['/farm/farm','/device/gateway','/device/info','/work/work','/work/category','/work/land','/origin/batch','/farm/user','/device/printer','/msg/msg'],['农场列表', '网关管理', '设备管理', '农场农事管理', '农场农事方式', '农场地块管理', '溯源批次管理','农场用户管理','农场打印机','消息提醒']]
  56. ,[['/content/info','/content/article','/content/category', '/content/set', '/sms/sms'],['首页内容管理', '文章管理', '文章分类', '网站基础设置', '短信通知']]
  57. ,[['/device/type','/hardware/type','/msg/type','/admin/admin','/admin/role','/hardware/hardware', '/admin/log'],['设备类型管理','硬件类型管理', '消息类型设置', '管理员设置', '管理权限设置','硬件设备记录', '系统日志']]
  58. ]
  59. return (parent,child)