def register(): form = RegisterForm() openid_form = OpenIdForm() if openid_form.validate_on_submit(): return oid.try_login(openid_form.openid.data, ask_for=['nickname', 'email'], ask_for_optional=['fullname']) if form.validate_on_submit(): new_user = User(form.username.data) # 建立User实例 new_user.set_password(form.password.data) # 设置密码 db.session.add(new_user) db.session.commit() flash('你的马甲已经缝制成功,请登台。', category='success') return redirect(url_for('.login')) openid_errors = oid.fetch_error() if openid_errors: flash(openid_errors, category='danger') return render_template('main/register.html', form=form, openid_form=openid_form)
def list_users(): """ List all users / Create a new user **Example output**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { username: "******", email: "*****@*****.**" } """ if request.method == 'GET': users = User.objects.all() return jsonify(users=[u.serialize() for u in users]) elif request.method == 'POST': try: user = User( username=request.json.get('username'), email=request.json.get('email') ) user.save() except ValidationError, e: print e.message return 'incorrect data format', 400 return 'OK'
def submit_feedback(username, order_id, order_hash): form = FeedbackForm() if not form.validate_on_submit(): flash(list(form.errors.values())[0]) return redirect(request.referrer) order = Order().fetch_order(order_id) if (not order) or (order.order_hash != order_hash): return abort(404) feedback = Feedback().fetch_feedback(order.id) if not feedback: Feedback().add(request.form, order.id, order.user) flash(['Feedback Submitted']) return redirect(url_for('shop.shop', username=User().fetch_user_supply_uuid(order.user).username)) Feedback().update_feedback(order.id, request.form) flash(['Feedback successfully updated.']) return redirect(url_for('shop.shop', username=User().fetch_user_supply_uuid(order.user).username))
def setUp(self): # Bug workarounds: Flask Admin和Flask Restful扩展中, # 它们会为应用生成蓝图对象并在内部保存起来,但在应用销毁时不会主动将其移除。 admin._views = [] rest_api.resources = [] self.app = create_app('test') # 必须push context,否则会报错误 self.app_context = self.app.app_context() self.app_context.push() self.client = self.app.test_client(use_cookies=True) # Bug workaround: 如果不在webapp目录中运行, # 则Flask SQLAlchemy的初始化代码就不能正确地在应用对象中进行初始化 db.app = self.app db.create_all() # create role and user # 由于下面有个test_register_and_login测试,要注册新用户, # 在register路由中会默认添加上'poster'和'default'角色,因此这里要先创建两种角色 poster = Role('poster') poster.description = 'poster role' default = Role('default') default.description = 'default role' db.session.add(poster) db.session.add(default) test_user = User('test') test_user.email = '*****@*****.**' test_user.password = '******' test_user.confirmed = True test_user.roles.append(poster) db.session.add(test_user) db.session.commit()
def register(): form = RegisterForm() openid_form = OpenIDForm() if openid_form.validate_on_submit(): return oid.try_login( openid_form.openid.data, ask_for=['nickname', 'email'], ask_for_opitonal=['fullname'] ) if form.validate_on_submit(): new_user = User(form.username.data) new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() flash( "Your user has been created, please login.", category="success" ) return redirect(url_for('.login')) openid_errors = oid.fetch_error() if openid_errors: flash(openid_errors, category="danger") return render_template('register.html', form=form)
def test_users(self): # add two users r = Role.query.filter_by(name='poster').first() self.assertIsNotNone(r) u1 = User('john') u1.email = '*****@*****.**' u1.password = '******' u1.confirmed = True u1.roles.append(r) u2 = User('susan') u2.email = '*****@*****.**' u2.password = '******' u2.confirmed = True u2.roles.append(r) db.session.add_all([u1, u2]) db.session.commit() # get users # 以u2通过验证,得到u1的用户信息 response = self.client.get(url_for('api.get_user', id=u1.id), headers=self.get_api_headers( 'susan', 'dog')) self.assertTrue(response.status_code == 200) json_response = json.loads(response.data.decode('utf-8')) self.assertTrue(json_response['username'] == 'john') # 以u2通过验证,得到u2的用户信息 response = self.client.get(url_for('api.get_user', id=u2.id), headers=self.get_api_headers( 'susan', 'dog')) self.assertTrue(response.status_code == 200) json_response = json.loads(response.data.decode('utf-8')) self.assertTrue(json_response['username'] == 'susan')
def test_user_password(self, testapp): """ Test password hashing and checking """ admin = User('admin', 'supersafepassword') assert admin.username == 'admin' assert admin.check_password('supersafepassword')
def populate_default_data(db, app): db.app = app db.create_all() user = User() user.username = "******" user.set_password("jim") db.session.add(user) db.session.commit() tag_one = Tag(title="Python") tag_two = Tag(title="Flask") tag_three = Tag(title="SQLAlchemy") tag_four = Tag(title="Jinja") tag_list = [tag_one, tag_two, tag_three, tag_four] s = "Example text" for i in range(100): new_post = Post(title="Post " + str(i)) new_post.user = user new_post.publish_date = datetime.datetime.now() new_post.text = s new_post.tags = random.sample(tag_list, random.randint(1, 3)) db.session.add(new_post) db.session.commit()
def test_token_auth(self): # add a user r = Role.query.filter_by(name='poster').first() self.assertIsNotNone(r) u = User('john') u.email = '*****@*****.**' u.password = '******' u.confirmed = True u.roles.append(r) db.session.add(u) db.session.commit() # issue a request with a bad token response = self.client.get(url_for('api.get_posts'), headers=self.get_api_headers( 'bad-token', '')) self.assertTrue(response.status_code == 401) # get a token response = self.client.get(url_for('api.get_token'), headers=self.get_api_headers('john', 'cat')) self.assertTrue(response.status_code == 200) json_response = json.loads(response.data.decode('utf-8')) self.assertIsNotNone(json_response.get('token')) token = json_response['token'] # issue a request with the token response = self.client.get(url_for('api.get_posts'), headers=self.get_api_headers(token, '')) self.assertTrue(response.status_code == 200)
def setUp(self): db.app = test_app db.create_all() user = User() user.username = self.username user.set_password(self.password) db.session.add(user)
def setUp(self): db.app = test_app db.create_all() user = User() user.username = self.username user.set_password(self.password) db.session.add(user) comment = Comment() comment.name = self.comment_name comment.text = self.comment_text tag = Tag() tag.title = self.tag_title post = Post() post.title = self.post_title post.text = self.post_text post.publish_date = self.post_publish_date # add relationships to other tables post.user = user post.tags = [tag] post.comments = [comment] db.session.add(user) db.session.add(comment) db.session.add(tag) db.session.add(post) db.session.commit()
def register_user() -> redirect: form = RegisterForm() if not form.validate_on_submit(): flash(list(form.errors.values())[0]) return redirect(url_for('auth.register')) if User().query.filter_by(email=request.form.get('email')).first(): flash(['''Email is already registered. Please use a different email, or login to continue''']) return redirect(url_for('auth.register')) if not email_regex(request.form.get('email')): flash(['Please enter a valid email']) return redirect(url_for('auth.register')) if User().query.filter_by(username=request.form.get('username')).first(): flash(['Username is taken. Please choose another username.']) return redirect(url_for('auth.register')) if not validate_dob(request.form.get('date_of_birth')): flash(['You must be at least 13 years old to use Sellit.']) return redirect(url_for('auth.register')) User().create_user(request.form) flash(['Account created. Please check your email to activate your account']) return redirect(url_for('auth.login'))
def register(): form = RegisterForm() openid_form = OpenIDForm() if openid_form.validate_on_submit(): return oid.try_login( openid_form.openid.data, ask_for=['nickname', 'email'], ask_for_optional=['fullname'] ) if form.validate_on_submit(): new_user = User( form.username.data ) new_user.set_password( form.password.data ) db.session.add(new_user) db.session.commit() flash("Your user has been created, please login.", category="success") return redirect(url_for('.login')) openid_errors = oid.fetch_erros() if openid_errors: flash(openid_errors, category="danger") return render_template('register.html', form=form, openid_form=openid_form)
def test_getHistory(self): u = User(username='******', fpl_id=229086) u.getHistory() a = [gw for gw in u.fpl_gameweeks] self.assertEqual(a[0].fpl_points, 96) self.assertEqual(a[0].user_id, 1) self.assertLess(len(a), 38) self.assertEqual(a[0].chip, '3xc')
def test_joinLeague(self): u = User(username='******', fpl_id=229086) l = League(league_id=1, league_name='ff500') u.joinLeague(l) a = [member for member in l.members] b = [league for league in u.memberships] self.assertEqual(a[0].entrant, u) self.assertEqual(b[0].league, l)
def test_valid_confirmation_token(self): user = User('test') user.password = '******' db.session.add(user) # 只有commit了才能拿到id,以便生成token db.session.commit() token = user.generate_confirmation_token() self.assertTrue(user.confirm(token))
def test_expired_confirmation_token(self): user = User('test') user.password = '******' db.session.add(user) db.session.commit() token = user.generate_confirmation_token(1) time.sleep(2) self.assertFalse(user.confirm(token))
def test_user_integrity_check(self): u = User(username="******") db.session.add(u) db.session.commit() u2 = User(username="******") with self.assertRaises(Exception) as context: db.session.add(u2) db.session.commit() self.assertEqual(type(context.exception), IntegrityError)
def create_user(username, password1, role='user'): with app.app_context(): new_user = User(username=username, role=role) new_user.set_password(password1) db.session.add(new_user) db.session.commit() print(f"Пользователь с именем {new_user.username} создан")
def process_reg(): if current_user.is_authenticated: return redirect(url_for('home')) form = RegisterForm() if form.validate_on_submit(): User.create_user(username=form.username.data, password1=form.password1.data) flash("Вы успешно зарегистрировались") return redirect(url_for('login'))
def register(): if g.user: return 'is logined' source = session.get('source') app = session.get('app') username = session.get('username') if source and username and app: token = session['oauth_token'] secret = session['oauth_token_secret'] if source=='sina': api_key, api_secret, callback = sina_api[app] auth = sina.OAuthHandler(api_key, api_secret, callback) auth.setToken(token, secret) #elif source=='qq': # api_key, api_secret, callback = qq_api # auth = qq.OAuthHandler(api_key, api_secret, callback) # auth.setToken(token, secret) # 创建shorten while True: code = shorten(str(datetime.now())) if User.query.filter_by(shorten=code).count()==0: break email = '*****@*****.**' % code user = User(nickname=username, email=email, shorten=code) user.password = email user.profile = UserProfile() update_profile(source, user, auth) db.session.add(user) db.session.commit() # login identity_changed.send(current_app._get_current_object(), identity=Identity(user.id)) user.bind(source, app, token, secret) return redirect(url_for('%s.post' % app)) else: return redirect(url_for('frontend.login'))
def register(): form = RegistrationForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data) user.set_password(form.password.data) wappdb.session.add(user) wappdb.session.commit() flash('Se ha registrado el usuario nuevo.') return redirect(url_for('index')) return render_template('register.html', title='Register', form=form)
def register(): if current_user.is_authenticated: return redirect(url_for('home')) form = RegistrationForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data) user.set_password(form.password.data) user.save() return redirect(url_for('login')) return render_template('register.html', title='Register', form=form)
def insert_data(): # 不需要在这里创建库,应该使用数据库升级命令`db upgrade`来创建库 # db.create_all() # 注意调用顺序 Role.generate_fake() User.generate_fake() Tag.generate_fake() Post.generate_fake() Comment.generate_fake(1000)
def register_user(): form = RegisterUserForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data) user.set_password(form.password.data) if form.create_profile.data: user.profile = UserProfile() db.session.add(user) db.session.commit() flash("Successfully registered user!", "success") return redirect(url_for("admin.register_user")) return render_template("admin/user/register_user.html", form=form)
def post(self): args = mention_post.parse_args() name = args['name'] if name: mentions = User.get_username_by_reg(name) if not len(mentions): # return User.get_username_limit5() return [] return mentions else: mentions = User.get_username_limit5() return mentions
def register(): if current_user.is_authenticated: return redirect(url_for('main.index')) form = RegistrationForm() if form.validate_on_submit(): user = User(username=form.username.data, email=form.email.data) user.set_password(form.password.data) db.session.add(user) db.session.commit() flash('Congratulations, you are now a registered user!') return redirect(url_for('login')) return render_template('auth/register.html', title='Register', form=form)
def create_admin_user(): """Creates an admin user""" email = app.config.get('ADMIN_USER', '*****@*****.**') pwd = app.config.get('ADMIN_PASSWORD', 'secret') user = User.by_email(email) if user is not None: print('Admin user already there.') return else: user = User(email=email, password=pwd) user.save() print('Admin user created.')
def create_admin_user(): """Creates an admin user""" email = app.config.get('ADMIN_USER', '*****@*****.**') pwd = app.config.get('ADMIN_PASSWORD', 'secret') user = User.by_email(email) if user is not None: print 'Admin user already there.' return else: user = User(email=email, password=pwd) user.save() print 'Admin user created.'
def register(): form = RegisterForm() if form.validate_on_submit(): new_user = User() new_user.username = form.username.data new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() flash('you user have been created ,Please login', category="success") return redirect(url_for('login.login1')) return render_template('register.html', form=form)
def register(): form = RegisterForm() if form.validate_on_submit(): new_user = User(form.username.data) new_user.username = form.username.data new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() flash('注册成功,请登录!', category='success') return redirect(url_for('.login')) return render_template('register.html', form=form)
def register(): form = RegistrationForm() if form.validate_on_submit(): new_user = User(form.username.data) new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() flash("Your user has been created, please login.", category='success') return redirect(url_for('.login')) return render_template('register.html', form=form)
def receive_redeem_code_test(): from webapp.models import User email = '*****@*****.**' user = User.query.filter(User.email == email).first() if user is None: user = User(email, _create_redeem_code(), 0) user.save() return jsonify(result=ResultType.RECEIVE_SUCCESS, redeem_code=user.redeem_code)
def test_duplicate_email_change_token(self): user1 = User('test1') user1.email = '*****@*****.**' user1.password = '******' user2 = User('test2') user2.email = '*****@*****.**' user2.password = '******' db.session.add(user1) db.session.add(user2) db.session.commit() token = user2.generate_email_change_token('*****@*****.**') self.assertFalse(user2.change_email(token)) self.assertTrue(user2.email == '*****@*****.**')
def user_loader(session_token): """Populate user object, check expiry""" if "expires" not in session: return None expires = datetime.utcfromtimestamp(session["expires"]) expires_seconds = (expires - datetime.utcnow()).total_seconds() if expires_seconds < 0: return None user = User() user.id = session_token user.nickname = session["nickname"] return user
def create_user(): params = request.get_json() user = User(username=params['username']) user.set_password(password=params['password']) erps = copy.deepcopy(error_response) db.session.add(user) try: db.session.commit() except Exception as e: erps['error'] = repr(e) return json.dumps(erps) erps['success'] = True return json.dumps(erps)
def create_admin(email, password): user = User() user.email = email user.password = password user.type = 'admin' user.active = True user.save()
def register(): if current_user.is_authenticated: return redirect(url_for('home')) form = RegistrationForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user = User(email=form.email.data, password=hashed_password) user.add() flash('Your account has been created! You are now able to log in', 'success') return redirect(url_for('login')) return render_template('register.html', title='Register', form=form)
def register(): if current_user.is_authenticated: return redirect(url_for("home")) form = RegistrationForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode("utf-8") user = User(email=form.email.data, password=hashed_password) user.add() flash("Your account has been created! You are now able to log in", "success") return redirect(url_for("login")) return render_template("register.html", title="Register", form=form)
def post(self, post_id=None): if post_id: abort(400) else: args = post_post_parser.parse_args(strict=True) user = User.verify_auth_token(args['token']) if not user: abort(401) new_post = Post(args['title']) new_post.user = user new_post.date = datetime.datetime.now() new_post.text = args['text'] if args['tags']: for item in args['tags']: tag = Tag.query.filter_by(title=item).first() # Add the tag if it exists. If not, make a new tag if tag: new_post.tags.append(tag) else: new_tag = Tag(item) new_post.tags.append(new_tag) db.session.add(new_post) db.session.commit() return new_post.id, 201
def put(self, post_id=None): if not post_id: abort(404) post = Post.query.get(post_id) if not post: abort(404) args = post_put_parser.parse_args(strict=True) user = User.verify_auth_token(args['token']) if not user: abort(401) if user != post.user: abort(403) if args['title']: post.title=args['title'] if args['text']: post.text = args['text'] if args['tags']: for item in args['tags']: tag = Tag.query.filter_by(title=item).first() if tag: post.tags.append(tag) else: new_tag= Tag(item) post.tags.append(new_tag) db.session.add(post) db.session.commit() return post.id, 201
def new_post(): form = PostForm() if form.validate_on_submit(): if form.type.data == "blog": new_post = BlogPost() new_post.text = form.text.data elif form.type.data == "image": new_post = ImagePost() new_post.image_url = form.image.data elif form.type.data == "video": new_post = VideoPost() new_post.video_object = form.video.data elif form.type.data == "quote": new_post = QuotePost() new_post.text = form.text.data new_post.author = form.author.data new_post.title = form.title.data new_post.user = User.objects( username=current_user.username ).one() new_post.save() return render_template('new.html', form=form)
def create_or_match_user_from_review_data(cls, reviewer_name, email): user = None existing_user = User.get_by_email_no_exception(email) if existing_user: user = existing_user else: user, is_new = UserLegacy.get_or_create_by_email(email, name=reviewer_name) return user
def register(): if request.method == 'GET': return render_template('register.html') elif request.method == 'POST': username = request.form['txtUsername'] password = request.form['txtPassword'] user = User.query.filter_by(username=username) if user.count() == 0: user = User(username=username, password=password) user.save() flash('You have registered the username {0}. Please login'.format(username)) return redirect(url_for('user.login')) else: flash('The username {0} is already in use. Please try a new username.'.format(username)) return redirect(url_for('user.register')) else: abort(405)
def test_login(self): """ Tests if the login form works correctly """ test_role = Role("default") db.session.add(test_role) db.session.commit() test_user = User("test") test_user.set_password("test") db.session.add(test_user) db.session.commit() result = self.client.post('/login', data=dict( username='******', password="******" ), follow_redirects=True) self.assertEqual(result.status_code, 200) self.assertIn('You have been logged in', result.data)
def receive_redeem_code(): """receive redeem_code same email have same redeem_code """ from webapp.models import User email = request.form['email'] if not _validate_email(email): return jsonify(result=ResultType.EMAIL_FAIL) user = User.query.filter(User.email == email).first() if user is None: user = User(email, _create_redeem_code(), 0) user.save() return jsonify(result=ResultType.RECEIVE_SUCCESS, redeem_code=user.redeem_code)
def register(): form = RegisterForm() if form.validate_on_submit(): new_user = User() new_user.username = form.username.data new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() flash('Your user has been created, please log in.', category='success') return redirect(url_for('main.login')) recent, top_tags = sidebar_data() return render_template('register.html', form=form, recent=recent, top_tags=top_tags)
def register(request): if request.method == "POST": uf = UserFormRegister(request.POST) if uf.is_valid(): userName = uf.cleaned_data['userName'] password = uf.cleaned_data['password'] email = uf.cleaned_data['email'] if User.objects.get(userName = userName) != None: uf = UserFormRegister() return render_to_response('register.html', {'uf': uf}, context_instance = RequestContext(request)) user = User() user.userName = userName user.password = password user.email = email user.save() response = render_to_response('success.html', {'username': userName}) response.set_cookie('username', userName, 3600) return response else: uf = UserFormRegister() return render_to_response('register.html', {'uf': uf}, context_instance = RequestContext(request))
def delete(self, post_id=None): if not post_id: abort(400) post = Post.query.get(post_id) if not post: abort(400) args = post_delete_parser.parse_args(strict=True) user = User.verify_auth_token(args['token']) if user !=post.user: abort(403) db.session.delete(post) db.session.commit() return "", 204
def auth(): remember_me = False if request.method == 'POST': user, authenticated = User.authenticate(db.session.query, request.form['username'], request.form['password']) if 'remember' in request.form: remember_me = True if authenticated: login_user(user, remember = remember_me) ##flash('You were logged in') return redirect(url_for('index', name=user.uname)) else: flash(gettext('Invalid username or password')) return render_template('login.html')
def setup_db(): db.create_all() admin_role = Role() admin_role.name = "admin" admin_role.description = "admin" db.session.add(admin_role) default_role = Role() default_role.name = "default" default_role.description = "default" db.session.add(default_role) admin = User() admin.username = "******" admin.set_password("password") admin.roles.append(admin_role) admin.roles.append(default_role) db.session.add(admin) tag_one = Tag('Python') tag_two = Tag('Flask') tag_three = Tag('SQLAlechemy') tag_four = Tag('Jinja') tag_list = [tag_one, tag_two, tag_three, tag_four] s = "Body text" for i in xrange(100): new_post = Post("Post " + str(i)) new_post.user = admin new_post.publish_date = datetime.datetime.now() new_post.text = s new_post.tags = random.sample(tag_list, random.randint(1, 3)) db.session.add(new_post) db.session.commit()
def login(): if current_user.is_authenticated: return redirect(url_for('home')) form = LoginForm() if form.validate_on_submit(): user = User.objects(username=form.username.data).first() if user is None or not user.check_password(form.password.data): return redirect(url_for('login')) login_user(user, remember=form.remember_me.data) next_page = request.args.get('next') if not next_page or url_parse(next_page).netloc != '': next_page = url_for('home') return redirect(next_page) return render_template('login.html', form=form)
def post(self, request, *args, **kwargs): response_data = {} email = request.POST.get('email') password = request.POST.get('password') if not all([email, password]): response_data['error'] = True response_data['message'] = "Email-id, and password required!" return HttpJSONResponse(response_data, status=400) if get_or_none(User, username=email): response_data['error'] = True response_data['message'] = "Email-id already exists!" return HttpJSONResponse(response_data, status=400) u = User(email=email, username=email) try: u.first_name = request.POST.get('fname', '') u.last_name = request.POST.get('lname', '') u.institute = request.POST.get('institute') u.grad_year = request.POST.get('grad_year') u.location = request.POST.get('location') u.company = request.POST.get('company') u.set_password(password) u.save() except Exception as e: response_data['error'] = True response_data['message'] = "Some error occurred! please try again." response_data['details'] = "%s - %s" % (e.__doc__, repr(e)) return HttpJSONResponse(response_data, status=500) response_data = { 'error': False, 'message': 'Successfully Created!', 'id': u.id, } return HttpJSONResponse(response_data)
sqlite_db.connect() ## Ad-hoc migration # move all persons for person in LegacyPerson.select(): if Person.objects(name=person.name).count(): continue Person(name=person.name).save() print 'Migrated Person: '+person.name # move all users for user in LegacyUser.select(): if User.objects(name=user.name).count(): continue # transfer user data User( name=user.name, email=user.email, password=user.password, is_admin=bool(user.is_admin) ).save() print 'Migrated User: '+user.name # move groups for group in LegacyInventoryGroup.select(): if InventoryGroup.objects(name=group.name).count(): continue InventoryGroup(
def validate_username(self, username): form = LoginForm() user = User.objects(username=username.data).first() if user is None or not user.check_password(form.password.data): raise ValidationError('Invalid username or password')
def validate_username(self, username): user = User.objects(username=username.data).first() if user is not None: raise ValidationError('Please use a different username.')
def validate_email(self, email): user = User.objects(email=email.data).first() if user is not None: raise ValidationError('Please use a different email address.')