def test_serialize(self): db = StringIO() User('James', 'Secret007', 'Active').serialize(db) self.assertEquals(db.getvalue(), 'James\tSecret007\tActive\n') User('user', 'T3stpass').serialize(db) self.assertEquals( db.getvalue(), 'James\tSecret007\tActive\n' 'user\tT3stpass\tInactive\n')
def login(): # Redirect to listing page if user is logged in if current_user.is_authenticated: return redirect(url_for('listing')) form = LoginForm() if form.validate_on_submit(): user = users.find_one({'email': form.email.data}) # If user exists and password matches password in db, # log in and create a user session if user and bcrypt.check_password_hash( user['password'], form.password.data.encode('utf-8')): username = user['username'] # Save session, even after browser is closed login_user(User(user), remember=form.remember.data) # Checks where to redirect the user after login next_page = request.args.get('next') flash(f'Welcome to squirrel, {username}.', 'success') # If unauthorized page has been accessed before being logged in, # redirect to it after login if it is safe if next_page and is_safe_url(next_page, socket.gethostname()): return redirect(next_page) # If not, redirect to the listing page else: return redirect(url_for('listing')) else: flash( 'Login unsucessful, please check email and password.', 'danger') return render_template('pages/login.html', title="Login", form=form)
def register(): if current_user.is_authenticated: return redirect(url_for('listing')) form = RegistrationForm() if form.validate_on_submit(): existing_email = users.find_one({'email': form.email.data}) # Create new user only if email is not already in use if existing_email is None: hashed_password = bcrypt.generate_password_hash( form.password.data ).decode('utf-8') users.insert_one({ "username": form.username.data, "email": form.email.data, "password": hashed_password, }) # Log in once user is created in db user = users.find_one({'email': form.email.data}) login_user(User(user), remember=False) flash(f'Account created for {form.username.data}.', 'success') return redirect(url_for('listing')) else: flash(f'Something went wrong with the information provided.', 'danger') return render_template( 'pages/registration.html', title="Registration", form=form)
def _verify_creating_fails_with_invalid_password(self, pwd, msg): try: User('testuser', pwd) self.fail("Creating user with password '%s' should have failed " "with error message '%s' but it passed." % (pwd, msg)) except ValueError, err: self.assertEquals(str(err), msg)
def login() -> Response: """Login route. Processes post messages from the login form. :return: A redirect to the landing page. """ # build the redirect, regardless of the result, we're currently always redirecting to the landing url: str = url_for('root') output: Response = redirect(url) # validate form data form: LoginForm = LoginForm() if not form.validate_on_submit(): flash('User login failed.', 'danger') return output name: str = form.name.data password: str = form.password.data with db_session: # validate user & password model: UserModel = UserModel.get(name=name) if not model or not check_password_hash(model.password_hash, password): flash('User login failed.', 'danger') return output # login the user user: User = User(model.user_id, model.name) login_user(user, remember=True) flash(f'User "{name}" logged in.', 'success') return output
def login(): form = LoginForm() if form.validate_on_submit(): user_name = form.username.data password = form.password.data remember_me = form.remember_me.data user = User(user_name) if user.verify_password(password): login_user(user) session['project'] = user.get_project() return redirect(request.args.get('next') or url_for('manage')) return render_template('login.html', title="Sign In", form=form)
def login(self, msg=False): clear() print('---Log in---') if msg is not False: print(f"!! {str(msg)} !!") uname = input('Username: '******'password: '******'Username or password incorrect') else: self.logged_in(res)
def post(self): current_user = users.get_current_user() user_color = self.request.get('color') user = User(first_name=self.request.get('first_name'), last_name=self.request.get('last_name'), email=current_user.email(), color=user_color) user_key = user.put() family = Family(members=[user_key]) family.put() profile_template = the_jinja_env.get_template('templates/profile.html') profile_dict = {"last_name": user.last_name, "family": family} self.response.write(profile_template.render(profile_dict)) time.sleep(0.1) self.redirect("/profile")
def run(do_debug=False): """ Main function to run the program. """ # Create the user object which has all of the credentials user = User() db = MySQLdb.connect(host="134.74.126.107", user=user.username, passwd=user.password, db="F16336team7", cursorclass=MySQLdb.cursors.DictCursor) cursor = db.cursor() #insert_main(cursor,db,do_debug) plot(cursor)
def login(): email = request.form['email'] passwd = request.form['password'] print(email, passwd) if email == User.admin_email and passwd == User.admin_passwd: user = User(email) login_user(user) flash('Logged in successfully.') next = request.args.get('next') # is_safe_url should check if the url is safe for redirects. # See http://flask.pocoo.org/snippets/62/ for an example. if not is_safe_url(next): return abort(400) return redirect(next or url_for('index')) errmsg = "email or password is wrong!" return render_template('login.html', email=email, msg=errmsg)
def create_acount(self, msg=False): clear() print('---Create acount---') if msg is not False: print(f"!! {str(msg)} !!") uname = input('Username: '******'password: '******'user_exists': # try again self.create_acount('User already exists') else: self.logged_in(res)
def register(): form = RegisterForm() if request.method == 'POST': if form.validate_on_submit(): user_name = form.username.data password = form.password.data project = form.project.data user = User(user_name) user.register(password, project) return render_template('login.html', title="Sign In", form=form, username=session['user_name']) return render_template('register.html', title="Register", form=form, username=session['user_name'])
def post(self): user = User(first_name=self.request.get('first_name'), last_name=self.request.get('last_name'), email=self.request.get('email'), color=self.request.get('color')) member = user.put() family = load_family_by_email(users.get_current_user().email()) #adding user to family FamilyMembers family.members.append(member) #put the Family family.put() time.sleep(0.1) profile_template = the_jinja_env.get_template('templates/profile.html') profile_dict = { "last_name": user.last_name, "first_name": user.first_name, "email": user.email, "color": user.color, "family": family, } self.response.write(profile_template.render(profile_dict))
def test_initialization(self): u = User('name', 'P4ssw0rd') self.assertEquals(u.username, 'name') self.assertEquals(u.password, 'P4ssw0rd') self.assertEquals(u.status, 'Inactive')
def test_init_with_status(self): u = User('James', 'Secret007', 'Active') self.assertEquals(u.username, 'James') self.assertEquals(u.password, 'Secret007') self.assertEquals(u.status, 'Active')
def load_user(user_id): if user_id == User.admin_email: return User(User.admin_email) return None