Feat(Chore, Fix): Refractor, Half Baked Deletion + Admin Privilege

Refractor Codes into sub file/folders
Admin can remove users'/members mfa/2fa, unlink account from  oauth provider
Admin can  add/reset password
Different Email (OIDC + Manual)-Same Account; (Block Linking and authorize if available)
This commit is contained in:
2026-03-04 18:49:04 +05:45
parent ea1bacc794
commit 7cb522b590
63 changed files with 7896 additions and 10863 deletions
+1 -1
View File
@@ -1 +1 @@
Jobs module for scheduled tasks.
"""Jobs module for scheduled tasks."""
+16 -3
View File
@@ -20,9 +20,9 @@ from typing import Optional, Dict, Any, List
import logging
from gatehouse_app.extensions import db
from gatehouse_app.models.mfa_policy_compliance import MfaPolicyCompliance
from gatehouse_app.models.organization_security_policy import OrganizationSecurityPolicy
from gatehouse_app.models.user import User
from gatehouse_app.models.security.mfa_policy_compliance import MfaPolicyCompliance
from gatehouse_app.models.security.organization_security_policy import OrganizationSecurityPolicy
from gatehouse_app.models.user.user import User
from gatehouse_app.services.mfa_policy_service import MfaPolicyService
from gatehouse_app.services.notification_service import NotificationService
from gatehouse_app.utils.constants import MfaComplianceStatus
@@ -203,6 +203,19 @@ def _evaluate_pending_compliance(now: datetime) -> int:
if not user:
continue
# Skip records for deleted organizations
from gatehouse_app.models.organization.organization import Organization
org = Organization.query.get(record.organization_id)
if not org or org.deleted_at is not None:
# Soft-delete orphaned compliance record
record.deleted_at = now or datetime.now(timezone.utc)
db.session.commit()
logger.info(
f"Cleaned up orphaned compliance record {record.id} "
f"for deleted org {record.organization_id}"
)
continue
# Re-evaluate compliance status
# This handles cases where policy changed or user enrolled in MFA
from gatehouse_app.services.mfa_policy_service import MfaPolicyService