def register_user(): username = request.form.get('username') email = request.form.get('email') password = request.form.get('password') avatar = request.files['avatar'] hashed_password = bcrypt.hashpw( str(password).encode('utf-8'), bcrypt.gensalt()) user = User(username=username, email=email, password=hashed_password) filename = secure_filename(avatar.filename) avatar.save(filename) s3_client.upload_file(Bucket='jwalls-fun-bucket', Filename=filename, Key=f'profile-pics/{filename}', ExtraArgs={'ACL': 'public-read'}) os.remove(filename) user.avatar_url = f'https://jwalls-fun-bucket.s3.amazonaws.com/profile-pics/{filename}' db.session.add(user) db.session.commit() user = db.session.query(User).filter_by(username=username).first() return {'user': user.to_dict()}
def test_can_transform_list_of_models_into_list_of_obj(self): models = [ User( username='******', password='******', role='admin', id=1, public_id='testpublicid', ), User( username='******', password='******', role='candidate', id=2, public_id='testpublicid2', ) ] expected_obj = [{ 'public_id': 'testpublicid', 'username': '******', 'password': '******', 'role': 'admin' }, { 'public_id': 'testpublicid2', 'username': '******', 'password': '******', 'role': 'candidate' }] actual = UserTransformer.models_to_obj(models) self.assertEqual(actual, expected_obj)
def get(self, user: User, hostname): if hostname: magic_castle = user.get_magic_castle_by_hostname(hostname) return magic_castle.dump_configuration() else: if type(user) == AuthenticatedUser: return [{ **magic_castle.dump_configuration(planned_only=True), "hostname": magic_castle.get_hostname(), "status": magic_castle.get_status().value, "freeipa_passwd": magic_castle.get_freeipa_passwd(), "owner": magic_castle.get_owner_username(), } for magic_castle in user.get_all_magic_castles()] else: return [{ **magic_castle.dump_configuration(planned_only=True), "hostname": magic_castle.get_hostname(), "status": magic_castle.get_status().value, "freeipa_passwd": magic_castle.get_freeipa_passwd(), } for magic_castle in user.get_all_magic_castles()]
def register_user(): """ Register a new user. """ if request.method == 'POST': username = request.form['username'] password = request.form['password'] try: User.register_user(username, password) # A session is a piece of data that is stored inside the app for each user different. session['username'] = username Log(username, 'Register.').save_to_mongo() flash('You have successfully registered.', 'success') return redirect(url_for('libors.index')) except errors.UserError as e: # Make the password strength error shorter. if e.message.startswith('A password must'): Log(username, 'Password strength error.').save_to_mongo() else: Log(username, e.message).save_to_mongo() flash(e.message, 'danger') return render_template('users/register.html') # If it's GET method, send user to the register page. return render_template('users/register.html')
def register_user(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: User.register_user(email, password) session['email'] = email return email except UserErrors.UserError as e: return e.message return render_template('users/register.html')
def post(self, user: User, hostname, apply=False): if apply: magic_castle = user.get_magic_castle_by_hostname(hostname) magic_castle.apply() return {} else: magic_castle = user.create_empty_magic_castle() json_data = request.get_json() if not json_data: raise InvalidUsageException("No json data was provided") magic_castle.set_configuration(json_data) magic_castle.plan_creation() return {}
def login_user(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: User.is_login_valid(email, password) session['email'] = email return redirect(url_for('stores.index')) except UserErrors.UserError as e: return e.message return render_template('users/login.html')
def register_user(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: User.register_user(email, password) session['email'] = email return redirect(url_for('alerts.index')) except UserErrors.UserError as e: flash(e.message, 'danger') return render_template('users/login.html') return render_template('users/register.html')
def decorated_function(*args, **kwargs): user = User.find_by_email(email=session['email']) if user.role not in roles: flash('You do not have permission to do that.', 'error') return redirect('/') return f(*args, **kwargs)
def post(self): ''' 获取验证码 :return: ''' assert self.body.get('mobile'), u'手机号码错误' verify_type = int(self.body['type'] or 0) mobile = self.body.get('mobile') accout = User.find_one_by(User.mobile == mobile) # 注册 if verify_type == 0: assert not accout, u'号码已注册,请直接登陆' # 忘记密码 elif verify_type == 1: assert accout, u'手机号暂未注册,请先注册' try: user_id = accout.get('user_id') except: user_id = None result = UserCook.verification_init(mobile, type=verify_type, user_id=user_id) # 这里要发送短信 code = result.pop('verify_code', None) print '这个是验证码:', code raise tornado.gen.Return(result)
def get_current_user(cls, username): name = None password = None email = None user_instance = None cur = db.connection.cursor() if username[0] == 'C': cur.execute( "SELECT user_name, password, email FROM Customer WHERE user_name='%s';" % username) user_instance = cur.fetchall() for val in user_instance: name = val[0] password = val[1] email = val[2] elif username[0] == 'M': cur.execute( "SELECT user_name, password FROM Manager WHERE user_name='%s';" % username) user_instance = cur.fetchall() for val in user_instance: name = val[0] password = val[1] email = None cur.close() new_user = User(name, password, email) if user_instance is None: return "Username does not exist" else: return new_user
def add_user(request): try: user_data = json.loads(request.body.read()) except Exception as e: logging.exception( 'Error loading json data from request:\n{0}'.format(e)) return HTTPResponse( status=HttpStatus.BAD_REQUEST, body='Request content type shall be an application/json') try: user = User(user_data) except (UserInsufficientData, UserInvalidDataType) as e: logging.exception('Invalid user data:\n{0}'.format(e)) return HTTPResponse(status=HttpStatus.BAD_REQUEST, body=str(e)) try: db = DataBase.get_instance() db.insert_user(user) except (DataBaseInstanceError, DuplicateUserError, DataBaseInsertionError) as e: logging.exception('Error storing user data:\n{0}'.format(e)) return HTTPResponse(status=HttpStatus.INTERNAL_ERROR, body=str(e)) logging.info('User was correctly created') return HTTPResponse(status=HttpStatus.CREATED)
def mail_verification(): email = session['email'] user = User.find_by_email(email=email) mail_verification = user.serialize_token() deliver_mail_verification_email(email=email, mail_verification=mail_verification) return redirect(url_for('home_page'))
def signup(): form = RegistrationForm() if form.validate_on_submit(): user = User(form.email.data, form.password.data, form.name.data, form.company.data) try: user.register_user() session['email'] = user.email flash( 'Sign up is complete, enjoy our services. \nAn E-mail address verification link has been sent to {0}.' .format(form.email.data), 'success') return redirect(url_for('users.mail_verification')) except UserErrors.UserAlreadyRegisteredError as e: flash(e.message, 'danger') return render_template('signup.html', form=form)
def put(self, user: User, hostname): magic_castle = user.get_magic_castle_by_hostname(hostname) json_data = request.get_json() if not json_data: raise InvalidUsageException("No json data was provided") magic_castle.set_configuration(json_data) magic_castle.plan_modification() return {}
def password_reset(): form = PasswordResetForm(reset_token=request.args.get('reset_token')) if form.validate_on_submit(): user = User.deserialize_token(request.form.get('reset_token')) if user is None: flash('Your reset token has expired or was tampered with.', 'danger') return redirect(url_for('users.password_reset_trigger')) form.populate_obj(user) hashed_password = User( email='None', password=request.form.get('password') ).password # hack to encrypt a password. by running init user.password = hashed_password user.update_user() flash('Your password has been reset.', 'success') return redirect(url_for('users.login_user')) return render_template('password_reset.html', form=form)
def get(self, user: User, hostname): try: magic_castle = user.get_magic_castle_by_hostname(hostname) status = magic_castle.get_status() progress = magic_castle.get_progress() if progress is None: return {"status": status.value} else: return {"status": status.value, "progress": progress} except InvalidUsageException as e: return {"status": ClusterStatusCode.NOT_FOUND.value}
def login_user(): session.permanent = True if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: if User.is_login_valid(email, password): session['email'] = email return redirect(url_for('home.index')) except UserErrors.UserError as e: return render_template("users/login.html", message = e.message) try: if User.find_by_email(session['email']): return redirect(url_for('home.index')) except: pass return render_template("users/login.html") # Send the user an error if their login was invalid
def create_user(current_user): if not current_user.is_admin(): return jsonify({'message': 'Cannot perform that function!'}) data = request.get_json() hashed_password = generate_password_hash(data['password'], method='sha256') new_user = User(public_id=str(uuid.uuid4()), username=data['username'], password=hashed_password, role='candidate') db.session.add(new_user) db.session.commit() return jsonify({'message': 'New user created!'})
def register_user(): if request.method == 'POST': name = request.form['name'] lastname = request.form['lastname'] email = request.form['email'] password = request.form['password'] try: if User.register_user(name, lastname, email, password): session['email'] = email return redirect(url_for('home.index')) except UserErrors.UserError as e: return e.message try: if User.find_by_email(session['email']): return redirect(url_for('home.index')) except: pass return render_template("users/register.html") # Send the user an error if their login was invalid
def create_user(user: NewUser, response: Response, db: Session = Depends(get_db), current_user: User = Depends(get_current_user)): """ 创建新用户 """ old_user = db.query(User).filter(User.username == user.username).first() if old_user: raise HTTPException(status_code=400, detail="要创建的用户已经存在!!!") user_dict = { "username": user.username, "email": user.email, "full_name": user.full_name, "is_active": user.is_active } new_user = User(**user_dict) new_user.convert_pass_to_hash(user.password) db.add(new_user) db.commit() response.status_code = status.HTTP_201_CREATED return UserBase(**user_dict)
def get_all_managers(cls, username, passcode): user_list = set() cur = db.connection.cursor() cur.execute( "SELECT user_name, password FROM Manager WHERE user_name='%s' AND password='******';" % (username, passcode)) user_instance = cur.fetchall() for val in user_instance: user_name = val[0] password = val[1] user_list.add(User(user_name, password, None)) cur.close() return user_list
def login_user(): if request.method == "POST": email = request.form["email"] password = request.form["password"] try: if User.is_login_valid(email, password): session["email"] = email return redirect(url_for('customer.find_customers')) except UserErrors.UserError as e: return e.message return render_template("users/login.html")
def create_user(): """ Create new user. Args: username (request.json): The username of the new user. email (request.json): The email of the new user. password (request.json): The password of the new user. Returns: (dict): { 'created': (bool) created, 'user': { 'id': (int) user id, 'username': (str) user username, 'email': (str) user email, 'authenticated': (bool) user authenticated, 'last_login': (datetime) user last login, 'created_on': (datetime) user created on } } """ # encode the password and hash password = str(request.get_json()['password']).encode('utf-8') hashed_password = bcrypt.hashpw(password, bcrypt.gensalt()) user = User( username=request.get_json()['username'], password=hashed_password, email=request.get_json()['email'] ) db.session.add(user) db.session.commit() user = db.session.query(User).get(user.id) return {'user': user.to_dict()}
def update_profile(user_id): if request.method == "POST": name = request.form['name'] lastname = request.form['lastname'] province = request.form['province'] district = request.form['district'] sub_district = request.form['sub_district'] salary = request.form['salary'] user = User.find_by_email(session['email']) user.name = name user.lastname = lastname user.province = province user.district = district user.sub_district = sub_district user.salary = salary user.save_to_mongo() return redirect(url_for('home.index')) return render_template('users/profile.html', user=User.find_by_email(session['email']))
def add_candidate_data(): user_candidate = User(username='******', password=generate_password_hash('test', method='sha256'), role='candidate').save() candidate = Candidate( first_name='Martin', last_name='McGirk', user=user_candidate, location='NSW', pitch= "Hi, I'm a senior software developer currently working at a startup in the centre of Edinburgh, I'm super good at all things Salesforce, so let's see how I can help your business reach it's goals and get me paid!", user_id=user_candidate.id).save()
def update_users(): data = request.get_json() print(data) user = User.find_by_id(_id=data['_id']) user.name = data['name'] user.email = data['email'] user.company = data['company'] user.role = data['role'] user.image = data['image'] user.update_user() response = {'status': True} return jsonify(response), 200
def login(): """Attempts to log a user in.""" if request.method == 'POST': email = request.form['email'] password = request.form['password'] try: if User.validate_login(email, password): session['email'] = email return email except UserError as e: return e.message return render_template('users/login.html')
def mail_verified(): form = MailVerifiedForm( mail_verification=request.args.get('mail_verification')) if form.validate_on_submit(): user = User.deserialize_token(request.form.get('mail_verification')) if user is None: flash('Your mail verification has expired or was tampered with.', 'danger') return redirect(url_for('users.login_user')) user.email_valid = True user.update_user() flash('Your E-mail address has been verified', 'success') return redirect(url_for('users.login_user')) return render_template('mail_verification.html', form=form)
def deliver_password_reset_email(email, reset_token): user = User.find_by_email(email=email) try: ctx = {'user': user, 'reset_token': reset_token} send_template_message(subject='REDFI Password reset', recipients=[email], template='mail/password_reset', ctx=ctx) except Exception: raise UserErrors.InvalidEmailError( "Can't validate the email address provided. Make sure email is correct or try after sometime." ) return None
def deliver_mail_verification_email(email, mail_verification): user = User.find_by_email(email=email) try: ctx = {'user': user, 'mail_verification': mail_verification} send_template_message(subject='REDFI E-mail Verification', recipients=[email], template='mail/mail_verification', ctx=ctx) except Exception: raise UserErrors.InvalidEmailError( "Can't validate the email address provided. Make sure email is correct or try after sometime." ) return None