def create_users(self): for key, value in users.items(): existing_user = User.query.filter_by(name=key).first() if existing_user is None: user = User(name=key) user.check_password_strength_and_hash_if_ok(value) user.add(user)
def post(self): """ Users Method to create a new User --- tags: - Users parameters: - in: body name: body schema: id: UserToUpdate properties: name: type: string description: The User name default: "UserName" password: type: string description: The User password default: "P4$sw00rd!" responses: 201: description: The updated area schema: $ref: '#/definitions/Area' """ request_dict = request.get_json() if not request_dict: response = {'user': '******'} return response, status.HTTP_400_BAD_REQUEST errors = user_schema.validate(request_dict) if errors: return errors, status.HTTP_400_BAD_REQUEST name = request_dict['name'] existing_user = User.query.filter_by(name=name).first() if existing_user is not None: response = {'user': '******'} return response, status.HTTP_400_BAD_REQUEST try: user = User(name=name) error_message, password_ok = \ user.check_password_strength_and_hash_if_ok( request_dict['password']) if password_ok: user.add(user) query = User.query.get(user.id) result = user_schema.dump(query).data return result, status.HTTP_201_CREATED else: return {"error": error_message}, status.HTTP_400_BAD_REQUEST except SQLAlchemyError as e: db.session.rollback() resp = {"error": str(e)} return resp, status.HTTP_400_BAD_REQUEST
def add(): error = None if request.method == 'POST': uname = request.form.get("name") password = request.form.get("password") confirm = request.form.get("confirm") mail = request.form.get("mail") group = request.form.get("group") user = User(current_app) userdata = user.check(uname) if not uname or not mail or not password: return render_template("user/add.html", error=u"请填写所有选项") if password != confirm: return render_template("user/add.html", error=u"两次密码不匹配") if len(userdata) == 0: if password: #valide salt = createSalt() password = md5(md5(password).hexdigest() + salt).hexdigest() uid = user.add(username=uname, passwd=password, email=mail, permissions=group, salt=salt, createtime=int(time.time())) if uid > 0: return redirect(url_for('users.index')) else: error = u"添加失败" else: error = u"密码不能为空" else: error = u"用户已经存在" return render_template("user/add.html", error=error)