def app(): "Initialize the app in test mode, initialises the DB, and adds some test cases" app = create_app('test') with app.test_request_context(): db.create_all() # create a user user = User('default', '*****@*****.**', 'password') db.session.add(user) db.session.flush() # create a new group test_group = Group('TestGroup', user) db.session.add(test_group) db.session.flush() # add an issue to the group issue = Issue('REF', 'Description', test_group.id) db.session.add(issue) # Make the user a member of the group membership = Membership(test_group, user) db.session.add(membership) existing_group = Group('GroupAlreadyExists', user) db.session.add(existing_group) # Second user user = User('bob', '*****@*****.**', 'password') db.session.add(user) db.session.commit() return app
def init_db(): # import all modules here that might define models so that # they will be registered properly on the metadata. Otherwise # you will have to import them first before calling init_db() import database.models if get_config()['mode'] == 'dev': Base.metadata.drop_all(bind=engine) Base.metadata.create_all(bind=engine) from database.models import User admin = User( civilite='M', firstName='admin', lastName='nimda', birthDate='2019-01-01', phone='0658062948', email='*****@*****.**', pwd='jdida', plastaId='a111111', surveyId='40340304', verified=True, blocked=False, fixedOldJobValue=False, fixedAlphaBeta=False, group='J4UINT_C1NE') other = User( civilite='M', firstName='other', lastName='nimda', birthDate='2019-01-01', phone='0658062947', email='*****@*****.**', pwd='jdida', plastaId='009', surveyId='40340304', verified=True, blocked=False, group='CGTINT_C1NE') ather = User( civilite='M', firstName='ather', lastName='nimda', birthDate='2019-01-01', phone='0658062949', email='*****@*****.**', pwd='jdida', plastaId='003', surveyId='9021988', verified=True, group='ather-ather') try: db_session.add_all([admin, other, ather]) db_session.commit() print(User.query.all()) except: print('Fake users already populated')
def userTestData(): newUser = User(id = 1, email = "*****@*****.**", username = "******", password = "******", company_name = "Fence", active = True) newUser1 = User(id = 2, email = "*****@*****.**", username = "******", password = "******", company_name = "Builder", active = True) newUser2 = User(id = 3, email = "*****@*****.**", username = "******", password = "******", company_name = "Fence", active = False) newUser3 = User(id = 4, email = "*****@*****.**", username = "******", password = "******", company_name = "Builder", active = False) dbSession.add(newUser) dbSession.add(newUser1) dbSession.add(newUser2) dbSession.add(newUser3) dbSession.commit()
def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.create_table('user', sa.Column('id', sa.Integer(), nullable=False), sa.Column('nickname', sa.String(length=32), nullable=True), sa.PrimaryKeyConstraint('id')) default = User('default') db.session.add(default) db.session.commit() # query to load id default = User.query.first() default_id = default.id # Not strictly necessary as I am going to rename the table. op.rename_table('group', 'old_group') op.create_table('estimation_group', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=32), nullable=True), sa.Column('user', sa.Integer(), nullable=False), sa.ForeignKeyConstraint( ['user'], ['user.id'], ), sa.PrimaryKeyConstraint('id')) op.execute( 'INSERT INTO estimation_group (name,user) SELECT name, {} FROM old_group' .format(default_id)) op.drop_table('old_group')
def signup(): try: body = request.get_json() user = User(**body) if len(user.password) < 8: response = make_response({ "status": "fail", "message": "password must be atleast 8 characters long" }) return response user.hash_password() user.save() return {"status": "success", "user": user}, 200 except ValidationError: response = make_response({ "status": "fail", "message": "This is not a valid phone number" }) return response, 400 except NotUniqueError: response = make_response({ "status": "fail", "message": "Account already exists!" }) return response, 409
def post(self): form = LoginForm(request.form) if form.validate(): username = request.form.get('username') password = request.form.get('password') try: User.try_login(username, password) except Exception as e: flash('Invalid username or password. Please try again.', 'danger') return render_template('login.html', form=form) user = User.query.filter_by(username=username).first() if not user: user = User(username, password) db.session.add(user) db.session.commit() login_user(user) flash('You have successfully logged in.', 'success') return redirect(url_for('auth.home')) if form.errors: flash(form.errors, 'danger') return render_template('login.html', form=form)
def sign_up(): username = request.form['username'] password = request.form['password'] new_session = session_maker() error = None if not (username or password): error = "You need to fill all of required fields." if get_or_none(new_session, User, username) is not None: error = f"User with a name '{username}' already exists." else: new_user = User(username=username, password_hash=generate_password_hash(password)) try: new_session.add(new_user) new_session.commit() except: new_session.rollback() error = "Sorry, an error occurred during the transaction of user's information to the database. " \ "Please, try again." finally: new_session.close() return redirect(url_for('api.sign_in')) flash(error) return render_template('sign_up.html')
def create_user(organization_id: str) -> Any: form = UserForm(request.form) organization = Organization.query. \ filter(Organization.id == organization_id).first() if request.method == 'POST' and form.validate(): user = User() user.organization_id = organization.id form.populate_obj(user) user.active = True try: db.session.add(user) db.session.commit() except IntegrityError: db.session.rollback() form.email.errors.append('This email is already in use') return render_template('users/users/new.html', form=form, organization=organization) except: db.session.rollback() flash('Error saving user') return render_template('users/users/new.html', form=form, organization=organization) return redirect( url_for('organizations.organization', organization_id=organization.id)) return render_template('users/users/new.html', form=form, organization=organization)
def sign_up(): body = request.get_json() user = User(**body).save() user.hash_password() user.save() id = user.id return {'id': str(id)}, 200
def signup(): """ User sign-up page. GET requests serve sign-up page. POST requests validate form & user creation. """ form = SignupForm() if form.validate_on_submit(): existing_user = User.query.filter_by(email=form.email.data).first() if existing_user is None: user = User(name=form.name.data, email=form.email.data, phone_number=form.number.data) user.set_password(form.password.data) user.set_number(form.number.data) db.session.add(user) db.session.commit() # Create new user login_user(user) # Log in as newly created user return redirect(url_for('main_bp.dashboard')) flash('A user already exists with that email address.') return render_template('signup.jinja2', title='Create an Account.', form=form, template='signup-page', body="Sign up for a user account.")
async def signup(form_data: EmailPasswordForm, request: Request, background_tasks: BackgroundTasks): try: try: user = User(email=form_data.username, password=form_data.password) except NotUniqueError: user = User.objects.get(email=form_data.username, verified=False, created__lt=datetime.now() - timedelta(days=1)) user.password = form_data.password if User.objects.count() == 0: user.admin = True user.hash_password() user.save() verify_token = create_access_token(str(user.id), expires_delta=timedelta(days=1)) send_email_backround( background_tasks, 'Verify Your Email', [user.email], 'verify_email.html', { 'url': f'{request.client.host}:{request.client.port}/login?t={verify_token}', }) # FOR DEBUG PURPOSES # TODO: remove in production print(request.client.host + ':' + request.client.port + '/login?t=' + verify_token) return {'id': str(user.id)} except DoesNotExist: raise UserAlreadyExistsError().http_exception except Exception as e: raise e
def add_user(): body = request.get_json() user = User() user["first_name"] = body["first_name"] user["last_name"] = body["last_name"] user["role"] = body["role"] if body["role"] == "PARENT": if "street" in body: user["street"] = body["street"] if "state" in body: user["state"] = body["state"] if "city" in body: user["city"] = body["city"] if "zip" in body: user["zip"] = body["zip"] user.save() return jsonify(user), 201 elif body["role"] == "CHILD": try: body["parent"] if body["parent"] == "": return {"error": "please enter parent id"}, 400 try: User.objects.get(user_id=body["parent"]) user["parent"] = body["parent"] user.save() return jsonify(user), 201 except: return {"error": "please enter a registered parent id"}, 400 except: return {"error": "please enter parent id"}, 400
def setUpClass(self): self.connection = connect(db='mongoenginetest', host='mongomock://localhost') self.user_id = '1088308123' user = User(user_id=self.user_id, pin='12345') user.save()
def logon(request): # print(request.POST) if ('username' in request.POST) and ('email' in request.POST) and ( 'code' in request.POST) and ('password' in request.POST): username = request.POST['username'] if not (User.objects.filter(username=username).exists()): email = request.POST['email'] code = request.POST['code'] password = request.POST['password'] if str(gen_code(email)) == str(code): user = User() user.username = username user.password = make_password(password) user.email = email user.contact = "4008823823" user.identity = "normal" user.apply = "False" user.token = "" user.save() add_dialog('第{}用户{}完成注册,注册邮箱是{}'.format( user.id, username, email)) return JsonResponse({"state": 1}) else: return JsonResponse({"state": "注册失败code is error"}) return JsonResponse({"state": "注册失败username is exist"}) return JsonResponse({"state": "注册失败变量不够"})
def post(self): body = request.get_json() user = User(**body) user.hash_password() user.save() id = user.id return {'id': str(id)}, 200
def post(self): try: body = request.get_json() username = body.get('username').title() email = body.get('email') password = body.get('password') if username is None or password is None or email is None: raise ValidationError if password != body.get('password2'): return {'password': '******'}, 400 if User.objects(Q(username__iexact=username) or Q(email__iexact=email)).count() > 0: raise NotUniqueError user = User(username=username, password=password, email=email) user.hash_password() user.save() expires = timedelta(days=7) access_token= create_access_token(identity=str(user.id), expires_delta=expires) return {'type': 'success', 'success': 'Login succesfull.', 'username': user.username, 'token': 'Bearer ' + access_token}, 200 except (FieldDoesNotExist, ValidationError, ValueError) as e: return SchemaValidationError, 400 except NotUniqueError: return EmailAlreadyExistsError, 400 except Exception as e: print(e) return InternalServerError, 500
def get_new_board(difficulty): try: payload = verify_decode_jwt(get_token_auth_header()) # Check if the user (auth_id) already exists user = None user_info = payload["http://www.jordanhuus.com/user_info"] if User.query.filter(User.auth_id == payload["sub"]).count() > 0: user = User.query.filter(User.auth_id == payload["sub"]) \ .first() else: first_name = user_info["name"].split(" ")[0] last_name = first_name if len(user_info["name"].split(" ")) \ == 1 else user_info["name"].split(" ")[1] user = User(first_name, last_name, user_info["id"]) user.add() # Store the newly created board board = SudokuBoard(difficulty, user) board.add() except KeyError as ke: abort(400, f"Request body is missing {ke} dictionary key.") except Exception: abort(500) return jsonify(board.format()), 200
def post(self): body = request.get_json() try: User.objects.get(email=body.get('email')) except DoesNotExist: user = User(**body) user.hash_password() try: user.save() except ValidationError as e: return {'error': str(e)}, 401 else: expires = datetime.timedelta(days=1) access_token = create_access_token(identity=str(user.id), expires_delta=expires) now = datetime.datetime.utcnow() expires_epoch = ( (now + expires) - datetime.datetime(1970, 1, 1)).total_seconds() return { 'token': access_token, 'token_expiry': expires_epoch, 'username': user.username, 'address': user.address }, 200 else: return {'error': 'Email already exists'}, 409
def post(self): body = request.get_json(); user = User(**body); user.hash_password(); user.save(); id = user.id return {"status":"true",'id': str(id)}, 200
def post(self): url = request.host_url + 'verify/' try: body = request.get_json() user = User(**body) user.hash_password() user.save() id = user.id #return {'id': str(id)}, 200 expires = datetime.timedelta(hours=24) access_token = create_access_token(str(id), expires_delta=expires) return send_email( 'Login verification', sender='*****@*****.**', recipients=[user.email], text_body=render_template('auth/login_email.txt', url=url + access_token), html_body=render_template('auth/login_email.html', url=url + access_token)) except FieldDoesNotExist: raise SchemaValidationError except NotUniqueError: raise EmailAlreadyExistsError except Exception as e: raise InternalServerError
def create_user(username, password, identity_word='normal'): """ 创建用户。 :param username: 用户名 :param password: 密码 :param identity_word: 身份 :return: 操作结果 """ if User.objects.filter(username=username).exists(): return operation_failed(InfoType.Exists, InfoField.User) if identity_word not in UserIdentity.IDENTITY_VALUE: return operation_failed(InfoType.NotExists, InfoField.IdentityWord) for letter in username: if not (letter.isalpha() or letter.isdigit() or letter == '_'): return operation_failed(InfoType.Invalid, InfoField.Username) user = User(username=username) user.set_password(password) user.save() profile = UserProfile(user=user) profile.username = username profile.register_time = int(time.time()) profile.save() identity = UserIdentity(user=user) identity.level = UserIdentity.IDENTITY_VALUE[identity_word] identity.save() return operation_succeeded()
def new_user(name, password): uname = User.query.filter_by(username=name).first() if uname == None: db_session.add(User(username=name, hash=password)) commit_session() #db_session.remove() #engine.dispose() return True
def post(self): body = request.get_json() # TODO: return error if username not unique user = User(**body) user.hash_password() user.save() id = user.id return {'id': str(id), 'username': user.username, 'groups': user.groups, 'contacts': user.contacts, 'error':''}, 200
def post(self): body = request.get_json() user = User(**body) user.save() user.add_ca() send_email_async(user.email, 'signup', user.first_name, pin=user.verification_pin) return {'id': str(user.id)}, 200
def signup(): form = request.json new_user = User( civilite=form["civilite"], firstName=form["firstName"], lastName=form["lastName"], birthDate=form["birthDate"], email=form["email"], phone=form["phone"], plastaId=form["plastaId"], pwd=form["password"], group=form["group"], ) try: db_session.add(new_user) db_session.commit() except sqlalchemy.exc.IntegrityError as err: duplicated_key = err.orig.msg.split("'")[-2] return ( jsonify( { "msg": "{} est déja utilisée. Si vous avez déja un compte et oublié votre mot de passe, cliquer sur 'Renvoi du mot de passe' sur la page de login".format( duplicated_key ) } ), 422, ) # Send a verification mail url_conf = generate_confirmation_token(form["email"]) msg = Message( "Validation de votre inscription à J4U", sender="*****@*****.**", recipients=[form["email"]], ) msg.html = """ <p> Bonjour, </p> <p> Nous vous remercions pour votre participation au projet « Job For You » (J4U). </p> <p> Suite à votre inscription, voici un email de confirmation. Afin de valider votre compte, il vous suffit de cliquer sur le lien suivant (qui n’est actif que quelques jours) : </p> <p> <a href="{}">Cliquez ici pour confirmer votre adresse email</a> </p> <p> L’équipe J4U </p> """.format( url_conf ) mail.send(msg) res = jsonify(success=True) return res
def setUp(self): self.organization = Organization(name="test_org") db.session.add(self.organization) db.session.commit() self.user = User(email=u"*****@*****.**") self.user.organization_id = self.organization.id db.session.add(self.user) db.session.commit()
def post(self): body = request.get_json() user = User(**body) try: user.save() except NotUniqueError: raise EmailAlreadyExist return user_schema.dump(user, many=False).data, 201
def create_user(cls, user_dto: UserDTO) -> None: with db_session() as session: user = User( id=user_dto.user_id, login=user_dto.login, first_name=user_dto.first_name, last_name=user_dto.last_name, ) session.add(user)
def register(): form = request.form dbs = User(phone=form["phone"], fullname=form["name"], mailid=form["email"], password=form["psw"]).save() resp = jsonify({'message': 'data successful update'}) resp.status_code = 200 return resp
def fblogin(): """ Handles login requests through facebook login""" data = request.get_json() print "data from request is" print data message = {} message['message'] = "facebook login in received" email = data['email'] print email user = helpers.user_by_email(email) print user if user: # create a JWT token to login token_data = { 'iat': datetime.datetime.utcnow(), 'exp': datetime.datetime.utcnow() + datetime.timedelta(days=30), 'username': user.username, 'userId': user.id, 'isLoggedIn': True, } auth_token = jwt.encode(token_data, constants.SECRET_KEY, algorithm='HS256') # create a JSON message with JWT and send it to client message['auth_token'] = auth_token message['success'] = True print message return jsonify(message), 200 if not user: # create a new User instance from the facebook login credentails, then a JWT login. username = data['name'] new_user = User(username=username, email=email) db_session.add(new_user) db_session.commit() user_with_id = db_session.refresh(new_user) message['user'] = user_with_id token_data = { 'iat': datetime.datetime.utcnow(), 'exp': datetime.datetime.utcnow() + datetime.timedelta(days=30), 'username': user_with_id.username, 'userId': user_with_id.id, 'isLoggedIn': True, } auth_token = jwt.encode(token_data, constants.SECRET_KEY, algorithm='HS256') message['auth_token'] = auth_token message['success'] = True print message return jsonify(message), 200