Merhabalar.

Bir portfolio projesi üzerinde çalışıyorum. Bugün aldığım hatayı anlayamıyorum.
Örneğin sitede Company ve Worker Üyelik var.
Şirket ve Normal tip üyeliklerin kayıtlarında , database kısmında problem yok.
Sorunum şu:
A şirket parolası 123456 olsun.
Daha sonra bir Worker oluşturduğumda şifre 123456 olursa, login yaparken Worker Email & Password giriyorum, otomatik olarak A şirketinin profili renderlanıyor.Bu da kabul edilemez bir güvenlik açığı tabii ki.
Yani current_user .is_authenticated Company olarak renderlanıyor.
Bir türlü çözüm bulamadım. Farklı kodlar yazdım ancak işin içinden çıkamıyorum.
Yardımcı olabilir misiniz?

Bu üyelik modellerimi şu şekilde tanımladım:
class Company(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    company_name = db.Column(db.String(100), nullable=False)
    company_detail = db.Column(db.Text, nullable=True)
    company_photo = db.Column(db.String(255), default='default.jpg') 
    company_email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    # Establishing a one-to-many relationship with JobListing
    joblistings = db.relationship('JobListing', backref='company', lazy=True)
    def __repr__(self):
        return f"Company('{self.company_name}', '{self.company_email}' , '{self.company_detail}' , '{self.password}')"
class JobListing(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=True)
    job_type = db.Column(db.String(50), nullable=True,default="Full Time")
    location = db.Column(db.String(100), nullable=True)
    posted_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    # Establishing a many-to-one relationship with Company
    company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
    def __repr__(self):
        return f"JobListing('{self.title}', '{self.location}', '{self.posted_time}')"
    
class Worker(db.Model , UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    worker_fullname=db.Column(db.String(60),nullable=False,default="Anonim")
    worker_email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    profile_photo = db.Column(db.String(255))  
    about = db.Column(db.Text)
    def __repr__(self):
        return f"Worker('{self.worker_fullname}','{self.worker_email}' , '{self.password}')"
Login Routing şu şekilde:
@user.route("/login" , methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    if form.validate_on_submit():
        company_user = Company.query.filter_by(company_email=form.email.data).first()
        if company_user is None:
            user = Worker.query.filter_by(worker_email=form.email.data).first()
        else:
            user = company_user
        if user and bcrypt.check_password_hash(user.password, form.password.data):
            login_user(user)
            flash('Login successful!', 'success')
            print(user)
            next_page = request.args.get('next')
            return redirect(next_page) if next_page else redirect(url_for('main.home'))
        else:
            flash('Login Unsuccessful. Please check username and password', 'danger')
            print(user)
    return render_template('login.html', title="Login", form=form)