def post(self): # register interface req_data = request.get_json() user_name = req_data.get('username', None) user_pass = req_data.get('password', None) if not user_name or not user_pass: return StandardResponse(403, 1, 'Forbidden') user = UsersModel(user_name, user_pass) try: user.add(user) except Exception, e: return StandardResponse(500, 1, e.message)
def post(self): """ 用户注册 :return: json """ self.parser.add_argument( "email", type=inputs.regex( r'(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)'), required=True, location="json", help='email format is incorrect') self.parser.add_argument("username", type=str, required=True, location="json", help='username is required') # self.parser.add_argument("permission", type=str, choices=['test', 'guest', 'user', 'admin', 'superAdmin'], required=True, location="json", # help='permission is required and only (test,user,admin,superAdmin)') self.parser.add_argument("permission", type=str, required=True, location="json", help='permission is required') self.parser.add_argument("password", type=password_len, required=True, location="json", trim=True) args = self.parser.parse_args() userEmailInfo = UsersModel.query.filter_by(email=args.email).all() for item in userEmailInfo: if item.id != args.id: return pretty_result(code.ERROR, msg='该邮箱已经被注册!') user = UsersModel(email=args.email, username=args.username, password=UsersModel.set_password( UsersModel, args.password), permission=args.permission) result = UsersModel.add(UsersModel, user) if user.id: returnUser = { 'id': user.id, 'username': user.username, 'email': user.email, 'login_time': user.login_time } return pretty_result(code.OK, data=returnUser, msg='用户注册成功') else: return pretty_result(code.ERROR, data='', 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")