def create(self): data = tornado.escape.json_decode(self.request.body) password = None if 'password' in data: password = bcrypt.encrypt(data['password']) isExist = (yield User.objects.filter(email=data['email'], status__ne='Deleted').count()) if isExist > 0: self.set_status(400) self.write('Email address is already in use.') else: try: user = User( first_name=data['first_name'], # middle_name=data['middle_name'], last_name=data['last_name'], email=data['email'].lower(), password=password, status='Unverified', credits=0) if 'phone_number' in data: user.phone_number = data['phone_number'] user.agreed_terms = True user = yield user.save() except: value = sys.exc_info()[1] self.set_status(403) str_value = str(value) if 'The index ' in str_value and ' was violated ' in str_value: str_value = 'Email already in used' self.write(str_value) self.finish()
def authenticated_client(): file = tempfile.mkstemp() db, app.config["SQLALCHEMY_DATABASE_URI"] = file[ 0], "sqlite:///" + file[1] + ".db" app.config["TESTING"] = True with app.test_client() as client: with app.app_context(): database.init_app(app) database.create_all() database.session.commit() login.init_app(app) test_user = User(username="******", email="*****@*****.**") test_user.set_password("admin") database.session.add(test_user) database.session.commit() test_todo_1 = Todo(task="Cooking", owner=test_user) test_todo_2 = Todo(task="Playing", owner=test_user) database.session.add(test_todo_1) database.session.add(test_todo_2) database.session.commit() yield client os.close(db)
def inviteAdmin(zemail, zaccountType=None, zpassword=None): import app.models.users, app.models.invitations if zaccountType == None: zaccountType = User.accountTypes.student try: zaccountType = toAccountNum(zaccountType) except ValueError: return False if zpassword: hash = User.createHash(zpassword) newUser = User(email=zemail, hash=hash, accountType=zaccountType) newUser.save() print "inviteAdmin: Created user {email: %s, hash: %s, accountType: %s}" % \ (zemail, hash, User.accountTypes.getName(zaccountType)) else: raise NotImplementedError return True
def client(): file = tempfile.mkstemp() db, app.config["SQLALCHEMY_DATABASE_URI"] = file[ 0], "sqlite:///" + file[1] + ".db" app.config["TESTING"] = True with app.test_client() as client: with app.app_context(): database.init_app(app) database.create_all() database.session.commit() login.init_app(app) test_user = User(username="******", email="*****@*****.**") test_user.set_password("admin") database.session.add(test_user) database.session.commit() @login.user_loader def load_user(user_id): return User.query.get(int(user_id)) yield client os.close(db)
def register(): # if already logged in redirect to homepage if current_user.is_authenticated: return redirect(url_for('index')) form = RegistrationForm() if form.validate_on_submit(): # Add new user record to db new_user = User(username=form.username.data, email=form.email.data, group_id=1) new_user.set_password(form.password.data) db.session.add(new_user) db.session.commit() # Autologin and redirect new user login_user(new_user) db_tools.add_login_record() session['payment_due'] = None return redirect(url_for('index')) return render_template('register.html', title='EBS: Account Registration', form=form)
def post(self): """ Register a user, generate their token and add them to the database :return: Json Response with the user`s token """ if request.content_type == 'application/json': post_data = request.get_json() email = post_data.get('email') password = post_data.get('password') if re.match(r"[^@]+@[^@]+\.[^@]+", email) and len(password) > 4: user = User.get_by_email(email) if not user: token = User(email=email, password=password).save() return response_auth('success', 'Successfully registered', token, 201) else: return response( 'failed', 'Failed, User already exists, Please sign In', 400) return response( 'failed', 'Missing or wrong email format or password is less than four characters', 401) return response('failed', 'Content-type must be json', 400)
def deactivateUser(): requestBody = request.get_json() instanceUsr = User(allData=False) disableUser = instanceUsr.disableUser(requestBody) return disableUser
def updateUser(): requestBody = request.get_json() newUser = User(requestBody) updateUser = newUser.updateUser() return updateUser
from app.models.users import User from random import randint from . import users # In order to generate valid User entries, we must follow the # constraits of the models and the procedurally generated data sets... # print(all_names) seed_users = [ User(email=user[0], name=user[1], hashed_password=user[2], profile_img=user[3]) for user in users ] # image_ids = range(1, 301) # users = zip(emails, all_names, hashed_passwords, range(1, 301)) # user_info = set(users) # print(users) # print(emails)
def test_valid_confirmation_token(self): u = User(password='******') db.session.add(u) db.session.commit() token = u.generate_confirmation_token() self.assertTrue(u.confirm(token))
fake = Faker() defaultPic = 'https://randomuser.me/api/portraits/' # Regardless of the lint error you receive, # load_dotenv must run before running this # so that the environment variables are # properly loaded. with app.app_context(): db.drop_all() db.create_all() users = [ User( email='*****@*****.**', fullName='James Robertson', username='******', password='******', profileImageUrl= 'https://slickpics.s3.us-east-2.amazonaws.com/uploads/FriJul242125202020.png', bio='This is my bio. Enjoy my roasts :)') ] for i in range(1, 15): name = fake.name() username = f"{name.replace(' ', '')}{randint(1,1000)}" email = f'{username}@coffeehub.com' men_or_women = 'men' if randint(1, 2) % 2 == 0 else 'women' userPic = f'{defaultPic}{men_or_women}/{i}.jpg' user = User(fullName=name, username=username, password='******', email=email,
def test_password_salts_are_random(self): u1 = User(email=u"*****@*****.**", username=u"u1", password=u"cat") u2 = User(email=u"*****@*****.**", username=u"u2", password=u"cat") self.assertTrue(u1.password_hash != u2.password_hash)
def register(): """ 使用这个api来创建新的账户 --- tags: - Register parameters: - name: username in: body type: string required: true description: username example: user - name: password in: body type: string required: true description: password example: 123456 - name: email in: body type: string required: true description: email example: [email protected] - name: role in: body type: integer required: true description: 1-admin, 2-user, 3-guest example: 2 responses: 200: description: success return verified=true,failed return verified=false and reason schema: $ref: "#/definitions/RegisterJson" definitions: RegisterJson: properties: verified: type: boolean example: false reason: type: string example: 相同的用户名 """ # 判断用户是否有注册权限 if session['role'] == 1: # 获取数据 user_info = request.get_json() back_data = { 'username': user_info.get('username'), 'password': user_info.get('password'), 'email': user_info.get('email'), 'role': user_info.get('role') } back_json = {'verified': True, 'reason': '成功'} # 数据库查询 # 检查是否存在相同username,email result = query_object(back_data['username'], '', back_data['email'], 'register') if result == 1: back_json['reason'] = '用户名被占用' back_json['verified'] = False current_app.logger.info('%s register failed ,reason : %s', back_data['username'], back_json['reason']) elif result == 2: back_json['reason'] = '已存在的邮箱地址,请直接登录' back_json['verified'] = False current_app.info('%s register failed ,reason : %s', back_data['username'], back_json['reason']) elif result == 3: # add new_account user = User() user.username = back_data['username'] user.password = back_data['password'] user.email = back_data['email'] user.role = back_data['role'] user.isActive = 1 add_object(user) current_app.logger.info('%s register successfully ', back_data['username']) else: back_json = {'status': False, 'reason': '你无权这么做'} return json.dumps(back_json), 200
def test_no_password_getter(self): u = User(email=u"*****@*****.**", username=u"u", password=u"cat") with self.assertRaises(AttributeError): u.password
def test_password_verification(self): u = User(email=u"*****@*****.**", username=u"u", password=u"cat") self.assertTrue(u.verify_password(u"cat")) self.assertFalse(u.verify_password(u"dog"))
def test_password_setter(self): u = User(email=u"*****@*****.**", username=u"u", password=u"cat") self.assertTrue(u.password_hash is not None)
def test_password_not_nullable(self): with self.assertRaises(IntegrityError): u = User(email=u"*****@*****.**", username=u"u") db.session.add(u) db.session.commit()
def test_email_not_nullable(self): with self.assertRaises(IntegrityError): u = User(username=u"u", password=u"cat") db.session.add(u) db.session.commit()
def create_user(username, password): return User(uuid.UUID, username, password)
def test_valid_confirmation_token(self): u = User(email=u"*****@*****.**", password=u"cat") db.session.add(u) db.session.commit() token = u.generate_confirmation_token() self.assertTrue(u.confirm(token))
from functools import wraps import jwt from app.models.orders import Orders from app.models.users import User from app.models.db_user_sql_queries import UserQueries from flasgger import swag_from from flask import Blueprint, jsonify, request, current_app from flask import redirect user_blue = Blueprint('user_b', __name__) user_obj = User() order_obj = Orders() querry = UserQueries() @user_blue.route('/api/v1/auth/signup', methods=['POST']) @swag_from('../docs/signup.yml') def user_signup(): " a function to signp user" new_user = request.json #validating user object if not user_obj.validate_user_obj(new_user): return jsonify({"error": "ivalid user obj"}), 400 new_first_name = new_user["first_name"] new_last_name = new_user["last_name"] new_user_name = new_user["user_name"] new_email = new_user["email"] new_password = new_user["password"]
from app import db from app.models.users import User db.create_all() guest = User(username='******', email='*****@*****.**', password='******') admin = User(username='******', email='*****@*****.**', password='******') db.session.add(guest) db.session.add(admin) db.session.commit()
from sqlalchemy.orm.session import Session from app.database import SessionLocal from app.models.users import User from app.dependencies import hash_password, get_db if __name__ == '__main__': db = SessionLocal() admin = db.query(User).get("admin") if admin: print("Admin user already exists") db.close() quit() user = User() user.active = True user.admin = True user.username = "******" user.hashed_password = hash_password("admin") user.name = "Admin" db.add(user) db.flush() db.commit() print("Admin user created") db.close()
from app.models.users import User from app.models.wines import Wine from app import app, db from dotenv import load_dotenv load_dotenv() with app.app_context(): db.drop_all() db.create_all() demo = User(name='demo', email='*****@*****.**', hashed_password= "******") # wine = Wine( # name='Rosé Win', # description='The estate was founded by the Meyer family circa 1870, and was known as Weingut A. Meyer for four generations. In 1950 through marriage of a Meyer daughter and Willibald Nakel (who also came from a wine making family) the estate became known as Weingut Meyer-Nakel. After completing his university studies Werner Nakel first taught mathematics and coached sports. In 1983 Werner took over the estate and with the 1987 vintage won top honors for the best Pinot Noir in Germany according to the German language publication Vinum. This was repeated in 1994 and 1995. Since 1987 the estate has been continuously listed as one of the top 100 wineries in Germany by DM magazine. The estate joined the V.D.P. in 1993 and in 1996 Feinschmecker nominated Werner Nakel as a candidate for vintner of the year. In the 1997 Gault Millau guide, the ‘94 Meyer-Nakel ”S” Pinot Noir was voted the best red wine in Germany. The estate consists of 21 acres and produces approximately 5800 cases ever year. The top vineyard sites include Pfarrwingert in Dernau, the Sonnenberg in Neuenahr, and the Riegelfeld and Ursulinengarten in Ahrweiler. The soil is made up primarily of weathered slate with some loamy loess. The vineyards are planted 73% to Pinot Noir, 12% to Fruhburgunder, 10% to Dornfelder and 5% to Riesling. Average yield is about 60 hl\ha.', # verietal='Mourvèdre' # ) db.session.add(demo) # db.session.add(wine) db.session.commit()
def addUser(email, username, password): "Run the add-user" user = User(email=email, username=username, password=password) db.session.add(user) db.session.commit()
def getAllUsers(): allUsers = User(allData=False) request = allUsers.getAllUsers() return request
def new(): user = User() return render_template('users/new.html')
def createUsers(): requestBody = request.get_json() newUser = User(requestBody) createUser = newUser.createUser() return createUser
def insert_user(name: str) -> User: user = User(name) with session_scope() as session: session.add(user) session.flush() return user
from app.models.users import User ian = User(username='******', email='*****@*****.**', hashed_password='******') javier = User(username='******', email='*****@*****.**', hashed_password='******') dean = User(username='******', email='*****@*****.**', hashed_password='******') angela = User(username='******', email='*****@*****.**', hashed_password='******') soonmi = User(username='******', email='*****@*****.**', hashed_password='******') alissa = User(username='******', email='*****@*****.**', hashed_password='******') bob = User(username='******', email='*****@*****.**', hashed_password='******') tim = User(username='******', email='*****@*****.**', hashed_password='******') jenny = User(username='******', email='*****@*****.**', hashed_password='******') sam = User(username='******', email='*****@*****.**',