Files
CHIEFSOFT\ameye bf553f3f61 office password
2025-10-12 08:07:34 -04:00

88 lines
2.9 KiB
Python

from datetime import datetime, timezone, timedelta
from itertools import product
from app.extensions import db
from app.models.customer import Customer
from app.models.account import Account
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import relationship
from dateutil.relativedelta import relativedelta
from datetime import timedelta
import logging
from sqlalchemy import and_, or_, not_
from sqlalchemy.sql import func
import json
logger = logging.getLogger(__name__)
class OfficeUsers(db.Model):
__tablename__ = 'office_users'
id = db.Column(
db.Integer,
primary_key=True,
autoincrement=True,
)
uid = db.Column(db.String(150), nullable=True)
username = db.Column(db.String(25), nullable=False)
password = db.Column(db.String(250), nullable=False)
firstname = db.Column(db.String(25), nullable=False)
lastname = db.Column(db.String(25), nullable=False)
acc_level = db.Column(db.Integer, nullable=True, default=10)
status = db.Column(db.Integer, nullable=True, default=0)
added = db.Column(db.DateTime(timezone=True), server_default=func.now())
@classmethod
def get_office_users_list(cls):
users_list = cls.query.all()
if not users_list:
raise ValueError(f"No available users")
return users_list
@classmethod
def get_office_user_id(cls, user_id):
users_list = cls.query.filter_by(id=user_id).first()
if not users_list:
logger.error(f"users_list with ID {user_id} does not exist.")
return None
return users_list
@classmethod
def get_office_user_by_username(cls, username):
logger.info(f"users_list looking for {username} .")
users_list = cls.query.filter_by(username=username).first()
logger.info(f"users_list looking for {username} after.")
if not users_list:
logger.error(f"users_list with ID {username} does not exist.")
return None
return users_list
@classmethod
def set_office_user_password(cls, user_id, username,password_hash):
selected_user = cls.query.filter_by(id=int(user_id), username=str(username)).first()
if not selected_user:
logger.error(f"users_list with ID {user_id} does not exist.")
return None
logger.info(f"Password Settings Action = > {user_id}, {username}, {password_hash} ")
selected_user.password = password_hash
return selected_user
def to_dict(self):
return {
'id': self.id,
'uid': self.uid,
'username': self.username,
'password': self.password,
'firstname': self.firstname,
'lastname': self.lastname,
'acc_level': self.acc_level,
'status': self.status,
'added': self.added
}
def __repr__(self):
return f'<Products {self.id}>'