def test(self): users_model = UsersModel(PostgresConnection().get_connection()) users_amount = users_model.amount()[0] username = random_string() password = random_string() returned_data = users_model.create({ "name": "name", "role": 1, "date_registration": date.today(), "username": username, "pwd_hash": password, "pwd_salt": uuid.uuid4().hex, "date_last_update": date.today(), "status": True }) assert (users_amount + 1 == users_model.amount()[0]) user = users_model.read({'username': username}) assert (user['role'] == 1) new_username = random_string() users_model.update({"username": new_username}, {"id": returned_data['id']}) user = users_model.read({"username": new_username}) assert (user is not None) users_model.delete({"id": returned_data['id']}) assert (users_model.read({"username": new_username}) is None)
def delete(self): self.parser.add_argument("ids", type=list, required=True, location="json", help='ids is required') args = self.parser.parse_args() UsersModel.delete(UsersModel, args.ids) return pretty_result(code.OK, msg='用户信息删除成功!')
class Users(Controller): # constructor def __init__(self): super(Users, self).__init__() self._data = UsersModel() # login def login(self): if self.logged(): return write("Well done") email = request.values.get("email") password = request.values.get("password") if email is not None and \ password is not None and \ self._data.valid(email, sha512(password)): session["email"] = email return write("Well done") else: return error("Incorrect login or password") # logout def logout(self): if not self.logged(): return error("You not logged") session.pop('email', None) return write("Well done") # entered def entered(self): if self.logged(): return write("Yes") else: return write("No") # register new user def register(self): if self.logged(): return error("You are already logged") email = request.values.get("email") password = request.values.get("password") fname = request.values.get("fname") lname = request.values.get("lname") role = request.values.get("role") avatar = request.values.get("avatar") status = request.values.get("status") if (not (type(email) is unicode)) or (len(email) < 5): return error("Incorrect e-mail") if (not (type(password) is unicode)) or (len(password) < 5): return error("Incorrect password") if self._data.exists(email): return error("User with this e-mail already exists") try: self._data.add({"email": email, "password": sha512(password), "fname": fname, "lname": lname, "role": role, "avatar": avatar, "status": status}) return write("Well done") except: return error("Registration failed") # delete user def delete(self): if not self.logged(): return error("You not logged") try: id = int(request.values.get("id")) self._data.delete(id) return write("Well done") except: return error("Invalid request") # get user info def get(self, param): if not self.logged(): return error("You not logged") try: if type(param) is int: return write(self._data.get(param)) elif type(param) is unicode: return write(self._data.get(param)) else: return write(self._data.get(session["email"])) except: return error("Invalid request") # change user info def change(self): if not self.logged(): return error("You not logged") user = {"email": request.values.get("email"), "password": request.values.get("password"), "fname": request.values.get("fname"), "lname": request.values.get("lname"), "role": request.values.get("role"), "avatar": request.values.get("avatar"), "status": request.values.get("status")} try: id = int(request.values.get("id")) self._data.edit(id, user) return write("Well done") except: return error("Invalid request") # get all user list def all(self): if not self.logged(): return error("You not logged") try: return write(self._data.all()) except: return error("Invalid request") def fetch(self, **kwargs): action = kwargs.get("action") param = kwargs.get("param") if action == "login": return self.login() elif action == "logout": return self.logout() elif action == "entered": return self.entered() elif action == "register": return self.register() elif action == "delete": return self.delete() elif action == "get" or action is None: return self.get(param) elif action == "change": return self.change() elif action == "all": return self.all() else: return error("Invalid request")