__load__.py 3.4 KB

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