Advertisement
Guest User

Untitled

a guest
Jan 13th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1.  
  2. import cherrypy
  3. import hashlib
  4. import json
  5. import os
  6. import codecs
  7.  
  8. USER_FILE = 'data/users.json'
  9. AUTOINC_FILE = 'data/auto.json'
  10.  
  11. ROLE_ANONYM = 0
  12. ROLE_EDITOR = 1
  13. ROLE_ADMIN = 2
  14. #--------------------------------------
  15. class User_cl(object):
  16. #--------------------------------------
  17.  
  18. #--------------------------------------
  19. def __init__(self):
  20. #--------------------------------------
  21. self.data = None
  22. self.load()
  23.  
  24. #--------------------------------------
  25. def load(self):
  26. #--------------------------------------
  27. self.data = json.load(codecs.open(os.getcwd() + "/" + USER_FILE, "r", "utf-8"))
  28.  
  29. #--------------------------------------
  30. def saveUsers(self):
  31. #--------------------------------------
  32. import json
  33. with open(USER_FILE, 'w+') as fp:
  34. json.dump(self.data, fp)
  35.  
  36. #--------------------------------------
  37. def getByName(self, name):
  38. #--------------------------------------
  39. try:
  40. for user in self.data:
  41. if self.data[user]["name"].lower() == name.lower():
  42. return self.data[user]
  43. except Exception:
  44. return "{}"
  45.  
  46. #--------------------------------------
  47. def getById(self, id):
  48. #--------------------------------------
  49. try:
  50. return self.data[id]
  51. except Exception:
  52. return "{}"
  53.  
  54. #--------------------------------------
  55. def getUserId(self, name):
  56. #--------------------------------------
  57. try:
  58. for user in self.data:
  59. if 'name' in self.data[user]:
  60. if self.data[user]["name"].lower() == name.lower():
  61. return user
  62. except Exception:
  63. return "{}"
  64.  
  65. #--------------------------------------
  66. def getAll(self):
  67. #--------------------------------------
  68. return self.data
  69.  
  70. #--------------------------------------
  71. def getNewUserId(self):
  72. #--------------------------------------
  73. data = json.load(codecs.open(os.getcwd() + "/" + AUTOINC_FILE, "r", "utf-8"))
  74. return data
  75.  
  76. #--------------------------------------
  77. def create(self, username, password, role = ROLE_ANONYM):
  78. #--------------------------------------
  79. username = username.strip()
  80. if(self.exist(username)):
  81. return False
  82.  
  83. newUserId = self.getNewUserId()
  84. self.saveAutoInc(int(newUserId)+1)
  85.  
  86.  
  87. import datetime
  88. self.data.update({ str(newUserId) : {
  89. "name": username,
  90. "password": self.hashPassword(password),
  91. "role": role,
  92. "registerDate": str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
  93. }})
  94. self.saveUsers()
  95. return True
  96.  
  97. #--------------------------------------
  98. def update(self, id, username, password, role):
  99. #--------------------------------------
  100. self.data[id]["name"] = username
  101. if password:
  102. self.data[id]["password"] = self.hashPassword(password)
  103. self.data[id]["role"] = role
  104. self.saveUsers()
  105.  
  106. #--------------------------------------
  107. def delete(self, id):
  108. #--------------------------------------
  109. if self.data[id]["role"] == "2":
  110. return False
  111.  
  112. del self.data[id]
  113. self.saveUsers()
  114. return True
  115.  
  116. #--------------------------------------
  117. def exist(self, username):
  118. #--------------------------------------
  119. for user in self.data:
  120. if self.data[user]["name"].title() == username.title():
  121. return True
  122. return False
  123.  
  124. #--------------------------------------
  125. def saveAutoInc(self, id):
  126. #--------------------------------------
  127. with open(AUTOINC_FILE, 'w+') as f:
  128. json.dump(id, f)
  129.  
  130.  
  131. #--------------------------------------
  132. def hashPassword(self, password):
  133. #--------------------------------------
  134. return hashlib.sha256(password.encode('utf-8')).hexdigest()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement