mirror of
https://github.com/imartinez/privateGPT.git
synced 2025-06-28 16:26:56 +00:00
Updated with new Basemodel for Audit
This commit is contained in:
parent
8271fedb78
commit
edd55a5dcc
@ -106,7 +106,6 @@ def prompt_completion(
|
|||||||
db: Session = Depends(deps.get_db),
|
db: Session = Depends(deps.get_db),
|
||||||
current_user: models.User = Security(
|
current_user: models.User = Security(
|
||||||
deps.get_current_user,
|
deps.get_current_user,
|
||||||
deps.get_active_subscription,
|
|
||||||
),
|
),
|
||||||
) -> OpenAICompletion | StreamingResponse:
|
) -> OpenAICompletion | StreamingResponse:
|
||||||
try:
|
try:
|
||||||
|
@ -26,5 +26,16 @@ def list_companies(
|
|||||||
"""
|
"""
|
||||||
Retrieve a list of companies with pagination support.
|
Retrieve a list of companies with pagination support.
|
||||||
"""
|
"""
|
||||||
logs = crud.audit.get_multi(db, skip=skip, limit=limit)
|
logs = crud.audit.get_multi_desc(db, skip=skip, limit=limit)
|
||||||
|
logs = [
|
||||||
|
schemas.Audit(
|
||||||
|
id=dep.id,
|
||||||
|
model=dep.model,
|
||||||
|
username=(crud.user.get_by_id(db, id=dep.user_id).fullname),
|
||||||
|
details=dep.details,
|
||||||
|
action=dep.action,
|
||||||
|
timestamp=dep.timestamp,
|
||||||
|
)
|
||||||
|
for dep in logs
|
||||||
|
]
|
||||||
return logs
|
return logs
|
||||||
|
@ -19,7 +19,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
LDAP_SERVER = settings.LDAP_SERVER
|
LDAP_SERVER = settings.LDAP_SERVER
|
||||||
# LDAP_ENABLE = settings.LDAP_ENABLE
|
# LDAP_ENABLE = settings.LDAP_ENABLE
|
||||||
LDAP_ENABLE = False
|
LDAP_ENABLE = True
|
||||||
|
|
||||||
router = APIRouter(prefix="/auth", tags=["auth"])
|
router = APIRouter(prefix="/auth", tags=["auth"])
|
||||||
|
|
||||||
@ -116,18 +116,26 @@ def login_access_token(
|
|||||||
"""
|
"""
|
||||||
OAuth2 compatible token login, get an access token for future requests
|
OAuth2 compatible token login, get an access token for future requests
|
||||||
"""
|
"""
|
||||||
if LDAP_ENABLE:
|
def ad_auth(LDAP_ENABLE):
|
||||||
existing_user = crud.user.get_by_email(db, email=form_data.username)
|
if LDAP_ENABLE:
|
||||||
|
existing_user = crud.user.get_by_email(db, email=form_data.username)
|
||||||
if existing_user:
|
|
||||||
if existing_user.user_role.role.name == "SUPER_ADMIN":
|
if existing_user:
|
||||||
pass
|
if existing_user.user_role.role.name == "SUPER_ADMIN":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
ldap = ldap_login(db=db, username=form_data.username, password=form_data.password)
|
||||||
else:
|
else:
|
||||||
ldap = ldap_login(db=db, username=form_data.username, password=form_data.password)
|
ldap = ldap_login(db=db, username=form_data.username, password=form_data.password)
|
||||||
else:
|
ad_user_register(db=db, email=form_data.username, fullname=ldap, password=form_data.password)
|
||||||
ldap = ldap_login(db=db, username=form_data.username, password=form_data.password)
|
return True
|
||||||
ad_user_register(db=db, email=form_data.username,fullname=ldap, password=form_data.password)
|
return False
|
||||||
|
if not (ad_auth(LDAP_ENABLE)):
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=403,
|
||||||
|
detail="Invalid Credentials!!!",
|
||||||
|
)
|
||||||
|
|
||||||
user = crud.user.authenticate(
|
user = crud.user.authenticate(
|
||||||
db, email=form_data.username, password=form_data.password
|
db, email=form_data.username, password=form_data.password
|
||||||
)
|
)
|
||||||
@ -254,7 +262,7 @@ def register(
|
|||||||
user_role_name = role_name or Role.GUEST["name"]
|
user_role_name = role_name or Role.GUEST["name"]
|
||||||
user_role = create_user_role(db, user, user_role_name, company)
|
user_role = create_user_role(db, user, user_role_name, company)
|
||||||
log_audit(model='user_roles', action='creation',
|
log_audit(model='user_roles', action='creation',
|
||||||
details={"status": '201', 'detail': "User role created successfully.", }, user_id=current_user.id)
|
details={'detail': "User role created successfully.", }, user_id=current_user.id)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(traceback.format_exc())
|
print(traceback.format_exc())
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
@ -1,12 +1,18 @@
|
|||||||
from typing import Optional
|
from typing import Optional, List
|
||||||
|
|
||||||
from private_gpt.users.crud.base import CRUDBase
|
from private_gpt.users.crud.base import CRUDBase
|
||||||
from private_gpt.users.models.audit import Audit
|
from private_gpt.users.models.audit import Audit
|
||||||
from private_gpt.users.schemas.audit import AuditCreate, AuditUpdate
|
from private_gpt.users.schemas.audit import AuditCreate, AuditUpdate
|
||||||
|
from sqlalchemy import desc
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
|
||||||
class CRUDAudit(CRUDBase[Audit, AuditCreate, AuditUpdate]):
|
class CRUDAudit(CRUDBase[Audit, AuditCreate, AuditUpdate]):
|
||||||
|
def get_multi_desc(
|
||||||
|
self, db: Session, *, skip: int = 0, limit: int = 100
|
||||||
|
) -> List[Audit]:
|
||||||
|
return db.query(self.model).order_by(desc(self.model.timestamp)).offset(skip).limit(limit).all()
|
||||||
|
|
||||||
def get_by_id(self, db: Session, *, id: str) -> Optional[Audit]:
|
def get_by_id(self, db: Session, *, id: str) -> Optional[Audit]:
|
||||||
return db.query(self.model).filter(Audit.id == id).first()
|
return db.query(self.model).filter(Audit.id == id).first()
|
||||||
|
|
||||||
|
@ -26,5 +26,10 @@ class AuditInDB(AuditBase):
|
|||||||
class Config:
|
class Config:
|
||||||
orm_mode = True
|
orm_mode = True
|
||||||
|
|
||||||
class Audit(AuditBase):
|
class Audit(BaseModel):
|
||||||
pass
|
id: int
|
||||||
|
model: str
|
||||||
|
username: str
|
||||||
|
action: str
|
||||||
|
details: dict
|
||||||
|
timestamp: Optional[datetime]
|
Loading…
Reference in New Issue
Block a user