def post(self): username = request.json.get('username', None) password = request.json.get('password', None) code = request.json.get('code', None) mail = request.json.get('mail', None) if username is None or password is None or code is None or mail is None or not re.match( r'[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+', mail): return jsonify(code=ResponseCode.FORMAT_ERROR, msg="用户名密码格式错误") cache_email = cache.get(code) if cache_email != mail: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) else: cache.delete(code) cache.delete(mail) session = AppUtils.get_session() try: # 验证用户名 AppUtils.validate_username(username) from models.models import User user = User() user.username = username user.mail = mail user.hash_password(password) user.credits = 0 session.add(user) session.commit() # 数据库 from app_config import SQLSession return jsonify(code=0, data=user.get_self_data()) except Exception as e: return jsonify(code=-1, msg=e.args[0]) finally: session.close()
def post(self): try: body = request.get_json() user = User(**body) user.hash_password() user.save() id = user.id return {'id': str(id)}, 200 except FieldDoesNotExist: raise SchemaValidationError except NotUniqueError: raise EmailAlreadyExistsError except Exception as e: raise InternalServerError
def login(): from models.models import User, db, datetime context = { 'password': request.form.get('password'), 'email': request.form.get('email'), 'msg': 'Sorry, but your login or password is incorrect', } if request.method == 'POST': query = User.query.filter_by(email=context.get('email').lower(), password=User.hash_password(context.get('password'))).first() if query: user = User(query=query) query.online = True query.active = datetime.now() db.session.commit() login_user(user, remember=True) else: return render_template('base.html', context=context) return redirect(url_for('main.index_page'))
def new_password(s): context = { 'msg': 'Wrong code for create new password', 'action': "/user/new_password/%s" % (s,), } if s == session.get('act_str_for_password'): context['msg'] = 'Please write your new password' if request.method == 'POST': from models.models import User, db pass1 = request.form.get('pass1') pass2 = request.form.get('pass2') if User.clean_passwords(pass1, pass2): query = User.query.filter_by(email=session.get('email')).first() query.password = User.hash_password(pass1) db.session.add(query) db.session.commit() del session['email'] del session['act_str_for_password'] context['msg'] = 'Successfully changed password' return render_template('reg/flash_message.html', context=context) return render_template('reg/handling_pass.html', context=context) return render_template('reg/flash_message.html', context=context)
def post(self): self.parser.add_argument('username', type=str, help='This username cannot be blank', required=True) self.parser.add_argument('password', type=str, help='This password cannot be blank', required=True) data = self.parser.parse_args( strict=True) # 获取传输的值/strict=True代表设置如果传以上未指定的参数主动报错 if User.query.filter_by(username=data['username']).filter_by( flag=1).first(): return { 'msg': 'user {} already exists'.format(data['username']) }, 400 new_user = User(username=data['username'], password=User.hash_password(data['password'])) session_add(new_user) msg = session_commit() if msg: return { "errors": f"{msg}", 'msg': "user add failed at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S")) }, 500 else: return { "msg": "user add successfully at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S")) }
def post(self): user_data = request.get_json() not_exist_fields = get_not_exist_fields(user_data.keys(), User) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) form = RegisterForm(data=user_data) user_data['password'] = User.hash_password(user_data['password']) if form.validate(): new_user = User(**user_data) session_add(new_user) msg = session_add(new_user) if msg: return response(f"{msg}", 500) else: return response("user create successfully") return response(form.errors, 400)
def activate_user(s): from models.models import User, ActivatedUsers, db context = { 'msg': 'Write yours password', 'action': "/user/activate/%s" % (s,), } query = ActivatedUsers.query.filter_by(activated_str=s).first() if request.method == 'GET' and query is not None: return render_template('reg/handling_pass.html', context=context) if request.method == 'POST': f = { 'pass1': request.form.get('pass1'), 'pass2': request.form.get('pass2'), } if query is not None: if query.activated: context['msg'] = 'This code has already registered' query.activated = True if User.clean_passwords(f['pass1'], f['pass2']): query.users.password = User.hash_password(f['pass1']) else: context['msg'] = 'Bad password' return render_template('reg/handling_pass.html', context=context) user = query.users login_user(user, remember=True) db.session.commit() context['msg'] = 'Your account successfully create' return render_template('reg/flash_message.html', context=context) context['msg'] = 'Wrong code' context['msg'] = 'Problem with activation' return render_template('reg/flash_message.html', context=context)
def create_seller(self, args): try: user = User(role_type_id=1, username=args['username'], password_hash=User.hash_password(args['password'])) db.session.add(user) db.session.commit() seller = Seller(user_id=user.id, name=args['name'], contact_name=args['contact_name'], contact_number=args['contact_number'], email_id=args['email_id']) db.session.add(seller) db.session.commit() return {"id": seller.id, "isSuccessful": True}, 202 except SQLAlchemyError as e: db.session.rollback() logger.exception("Error while creating seller") return {"error": str(e), "isSuccessful": False}, 401 finally: db.session.close()
def put(self): self.parser.add_argument('username', type=str, help='This username cannot be blank', required=True) self.parser.add_argument('password', type=str, help='This password cannot be blank', required=True) self.parser.add_argument('new_password', type=str, help='This password cannot be blank', required=True) data = self.parser.parse_args() try: user = User.query.filter_by(username=data['username']).first() if user: if not user.verify_password(data['password']): return {"msg": "the username or password is wrong!"}, 403 user.password = User.hash_password(data['new_password']) user.update_time = datetime.now() msg = session_commit() return { "status": msg, "msg": "user update successfully at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S")) } else: return { 'msg': 'user {} does`t exists'.format(data['username']) }, 400 except Exception as e: return { "errors": f"{e}", 'msg': "user update failed at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S")) }, 500