Skip to content

Commit

Permalink
Merge pull request #41 from DiptoChakrabarty/model-name
Browse files Browse the repository at this point in the history
Model name Modification and methods
  • Loading branch information
DiptoChakrabarty authored Sep 14, 2021
2 parents dfbefc6 + aec3520 commit 97e3b2d
Show file tree
Hide file tree
Showing 1,415 changed files with 37 additions and 445,924 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
__pycache__
resume/.env
venv
site.db
12 changes: 6 additions & 6 deletions resume/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from wtforms import StringField, PasswordField,SubmitField,BooleanField,TextAreaField
from wtforms.fields.html5 import DateField
from wtforms.validators import DataRequired,Length,Email,EqualTo,ValidationError,Regexp
from resume.models import user
from resume.models import UserModel
from flask_login import current_user

class Reg(FlaskForm):
Expand All @@ -18,12 +18,12 @@ class Reg(FlaskForm):
submit = SubmitField('Sign Up')

def validate_username(self,username):
users = user.query.filter_by(username=username.data).first()
users = UserModel.find_by_username(username.data)
if users:
raise ValidationError('Username used already')

def validate_email(self,email):
email = user.query.filter_by(email=email.data).first()
email = UserModel.find_by_email(email.data)
if email:
raise ValidationError('Email used already')

Expand All @@ -50,12 +50,12 @@ class account(FlaskForm):
submit = SubmitField('Update Account')
def validate_username(self,new_username):
if new_username.data != current_user.username:
username = user.query.filter_by(username=new_username.data)
username = UserModel.find_by_username(new_username.data)
if username:
raise ValidationError("Username Already present")
def validate_email(self,new_email):
if new_email != current_user.email:
emailid = user.query.filter_by(email=new_email.data)
emailid = UserModel.find_by_email(new_email.data)
if emailid:
return ValidationError("Email Id used already")

Expand Down Expand Up @@ -163,7 +163,7 @@ class requestresetform(FlaskForm):
submit = SubmitField("Reset Password")

def validate_email(self,email):
user_email = user.query.filter_by(email=email.data).first()
user_email = UserModel.find_by_email(email.data)
if user_email is None:
raise ValidationError("The email is unverified please register using this email")

Expand Down
24 changes: 21 additions & 3 deletions resume/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@

@login_manager.user_loader
def load_user(id):
return user.query.get(int(id))
return UserModel.query.get(int(id))


class user(db.Model,UserMixin):
class UserModel(db.Model,UserMixin):
__tablename__= "user"
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20),unique=True,nullable=False)
email = db.Column(db.String(120),unique=True,nullable=False)
Expand All @@ -31,6 +32,23 @@ class user(db.Model,UserMixin):
def __retr__(self):
return "User {} Email {} Image {}".format(self.username,self.email,self.image_file)


def add_to_database(self):
db.session.add(self)
db.session.commit()

def delete_from_database(self):
db.session.delete(self)
db.session.commit()

@classmethod
def find_by_username(cls,username):
return cls.query.filter_by(username=username).first()

@classmethod
def find_by_email(cls,email):
return cls.query.filter_by(email=email).first()

def reset_token(self,expires_sec=1800):
s = serializer(app.config['SECRET_KEY'],expires_sec)
return s.dumps({"user_id": self.id}).decode("utf-8")
Expand All @@ -42,7 +60,7 @@ def verify_token(token):
user_id = s.loads(token)['user_id']
except:
return None
return user.query.get(user_id)
return UserModel.query.get(user_id)



Expand Down
17 changes: 8 additions & 9 deletions resume/routes.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from flask import Flask,make_response,render_template,url_for,flash,redirect,request,abort
from resume.forms import Reg,Login,account,posting,resumebuilder,useredu,userexp,userpro,usersk,achieve,requestresetform,resetpassword
from resume.models import user,education,experience,projects,userdetails,skills,achievements
from resume.models import UserModel,education,experience,projects,userdetails,skills,achievements
from resume import app,db, bcrypt , mail
from flask_login import login_user,current_user,logout_user,login_required
from flask_mail import Message
Expand All @@ -26,9 +26,8 @@ def register():
form = Reg()
if form.validate_on_submit():
hashed = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
new_user = user(username=form.username.data,email=form.email.data,password=hashed)
db.session.add(new_user)
db.session.commit()
new_user = UserModel(username=form.username.data,email=form.email.data,password=hashed)
new_user.add_to_database()
flash(f'Account Created for {form.username.data}!','success')
return redirect(url_for('login'),code=302)
return render_template('register.html',title='Register',form=form)
Expand All @@ -39,7 +38,7 @@ def login():
return redirect(url_for('hello'),code=301)
form = Login()
if form.validate_on_submit():
logged = user.query.filter_by(email=form.email.data).first()
logged = UserModel.find_by_email(form.email.data)
if logged and bcrypt.check_password_hash(logged.password,form.password.data):
login_user(logged,remember=form.remember.data)
next_page = request.args.get('next')
Expand Down Expand Up @@ -354,7 +353,7 @@ def delete_pro(project_id):
#### Reset Password ####
def send_reset_pass(user):
email_id= os.environ["MAIL_USERNAME"]
token = user.reset_token()
token = UserModel.reset_token()
msg= Message("Password Reset Request",
sender="{}".format(email_id),recipients=[user.email])

Expand All @@ -373,7 +372,7 @@ def request_reset():
return redirect(url_for('hello'),code=301)
form = requestresetform()
if form.validate_on_submit():
req_user = user.query.filter_by(email=form.email.data).first()
req_user = UserModel.find_by_email(form.email.data)
send_reset_pass(req_user)
flash("Email has been sent with instructions to Reset Password")
return redirect(url_for("hello"),code=301)
Expand All @@ -384,15 +383,15 @@ def request_reset():
def token_reset(token):
if current_user.is_authenticated:
return redirect(url_for('hello'),code=302)
user_req = user.verify_token(token)
user_req = UserModel.verify_token(token)
if user_req is None:
flash("Token is Invalid or Expired","warning")
return redirect(url_for('request_reset'),code=307)
form = resetpassword()
if form.validate_on_submit():
hashed = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
user_req.password = hashed
db.session.commit()
user_req.add_to_database()
flash(f'Password Updated ','success')
return redirect(url_for('login'),code=302)
return render_template("reset_password.html",title="Reset Password",form=form)
Binary file removed resume/site.db
Binary file not shown.
84 changes: 0 additions & 84 deletions venv/bin/activate

This file was deleted.

55 changes: 0 additions & 55 deletions venv/bin/activate.csh

This file was deleted.

Loading

0 comments on commit 97e3b2d

Please sign in to comment.