=== Unprotected Methods Analysis ===
Generated: 2025-11-28 14:20:24

Total unprotected methods: 302

╔══════════════════════════════════════════════════════════════╗
║  1. INTENTIONALLY PUBLIC (9 methods) - OK           ║
╚══════════════════════════════════════════════════════════════╝
These methods are designed to be public (login, agreements, etc.)
Action: ✓ Document and keep as-is

  ✓ AgreementController::publicView()
  ✓ AgreementController::acceptAgreement()
  ✓ AgreementController::declineAgreement()
  ✓ AgreementController::thankYou()
  ✓ AuthController::loginForm()
  ✓ AuthController::login()
  ✓ AuthController::logout()
  ✓ AuthController::forgotPassword()
  ✓ AuthController::resetPassword()

╔══════════════════════════════════════════════════════════════╗
║  2. TEST/DEVELOPMENT (10 methods)                  ║
╚══════════════════════════════════════════════════════════════╝
Test controllers that should be removed or protected in production
Action: ⚠ Remove from production OR add admin-only protection

  ⚠ AITestController (9 methods)
     - index()
     - chat()
     - generate()
     - extract()
     - sentiment()
     ... and 4 more
  ⚠ TestController (1 methods)
     - formGenerator()

╔══════════════════════════════════════════════════════════════╗
║  3. NEEDS REVIEW (11 methods)                      ║
╚══════════════════════════════════════════════════════════════╝
System/utility methods that may need special handling
Action: ⏳ Review each to determine if protection is needed

  ? AuthController::forgotPasswordForm()
  ? AuthController::resetPasswordForm()
  ? BackupController::index()
  ? BackupController::triggerDatabaseBackup()
  ? BackupController::triggerGitPush()
  ? BackupController::triggerFullBackup()
  ? BackupController::getHistory()
  ? BackupController::getStats()
  ? BackupController::showDetails()
  ? QuoteController::publicView()
  ? QuoteController::thankYou()

╔══════════════════════════════════════════════════════════════╗
║  4. AUTH ONLY (107 methods) - Medium Priority      ║
╚══════════════════════════════════════════════════════════════╝
Methods with authentication but no permission check
Action: ⏳ Evaluate if permission check needed based on sensitivity

  ⏳ ApprovalsController (1 methods)
     - dashboard()
  ⏳ CalendarController (2 methods)
     - index()
     - getEvents()
  ⏳ CurrencyController (2 methods)
     - getRate()
     - convertAmount()
  ⏳ CustomReportsController (5 methods)
     - builder()
     - my()
     - shared()
     ... and 2 more
  ⏳ DashboardController (2 methods)
     - index()
     - customize()
  ⏳ DocumentsController (7 methods)
     - all()
     - my()
     - shared()
     ... and 4 more
  ⏳ EmailController (20 methods)
     - index()
     - folder()
     - viewEmail()
     ... and 17 more
  ⏳ EmployeeController (1 methods)
     - directory()
  ⏳ FileManagerController (9 methods)
     - index()
     - browse()
     - tree()
     ... and 6 more
  ⏳ FinancialProFormaController (2 methods)
     - index()
     - assumptions()
  ⏳ GoodsReceiptController (1 methods)
     - getPOItemsAjax()
  ⏳ HelpDeskController (11 methods)
     - dashboard()
     - tickets()
     - myTickets()
     ... and 8 more
  ⏳ InternalNoteAPIController (2 methods)
     - add()
     - togglePin()
  ⏳ MFAController (5 methods)
     - setupForm()
     - setup()
     - showBackupCodes()
     ... and 2 more
  ⏳ MessagingController (9 methods)
     - index()
     - channel()
     - getChannelMembers()
     ... and 6 more
  ⏳ NextcloudProxyController (1 methods)
     - proxyLogin()
  ⏳ NextcloudSSOController (2 methods)
     - generateToken()
     - autoLogin()
  ⏳ NotificationController (1 methods)
     - index()
  ⏳ ProFormaController (3 methods)
     - index()
     - location()
     - compare()
  ⏳ ProfileController (4 methods)
     - index()
     - uploadAvatar()
     - changePassword()
     ... and 1 more
  ⏳ QuickBooksController (11 methods)
     - index()
     - connect()
     - callback()
     ... and 8 more
  ⏳ QuoteTemplateController (1 methods)
     - getTemplate()
  ⏳ SearchController (1 methods)
     - searchCustomers()
  ⏳ TaxJurisdictionController (2 methods)
     - getCitiesByState()
     - calculateCustomerTax()
  ⏳ TermsConditionsController (2 methods)
     - show()
     - getByType()

╔══════════════════════════════════════════════════════════════╗
║  5. NEEDS PROTECTION (165 methods) - HIGH PRIORITY!   ║
╚══════════════════════════════════════════════════════════════╝
🚨 These methods MUST have protection added immediately!
Action: 🚨 Add requireAuth() + checkPermission() ASAP

  🚨 ApiController (2 methods)
     - usersList()  [controllers/ApiController.php]
     - allUsers()  [controllers/ApiController.php]

  🚨 BankImportController (4 methods)
     - upload()  [controllers/BankImportController.php]
     - categorizeTransaction()  [controllers/BankImportController.php]
     - applyRules()  [controllers/BankImportController.php]
     - toggleRule()  [controllers/BankImportController.php]

  🚨 CameraAuditController (3 methods)
     - capture()  [controllers/CameraAuditController.php]
     - createStation()  [controllers/CameraAuditController.php]
     - editStation()  [controllers/CameraAuditController.php]

  🚨 ContactAPIController (1 methods)
     - getByCompany()  [controllers/ContactAPIController.php]

  🚨 CurrencyController (2 methods)
     - createCurrency()  [controllers/CurrencyController.php]
     - createRevaluation()  [controllers/CurrencyController.php]

  🚨 CustomReportsController (1 methods)
     - index()  [controllers/CustomReportsController.php]

  🚨 DashboardController (3 methods)
     - addWidget()  [controllers/DashboardController.php]
     - toggleWidget()  [controllers/DashboardController.php]
     - refreshWidget()  [controllers/DashboardController.php]

  🚨 DocumentationController (4 methods)
     - index()  [controllers/DocumentationController.php]
     - search()  [controllers/DocumentationController.php]
     - download()  [controllers/DocumentationController.php]
     - refreshCoverage()  [controllers/DocumentationController.php]

  🚨 EmailTemplateController (1 methods)
     - toggleActive()  [controllers/EmailTemplateController.php]

  🚨 EmailWebhookController (2 methods)
     - receive()  [controllers/EmailWebhookController.php]
     - test()  [controllers/EmailWebhookController.php]

  🚨 FileManagerController (9 methods)
     - upload()  [controllers/FileManagerController.php]
     - createFolder()  [controllers/FileManagerController.php]
     - rename()  [controllers/FileManagerController.php]
     - move()  [controllers/FileManagerController.php]
     - moveFolder()  [controllers/FileManagerController.php]
     - compress()  [controllers/FileManagerController.php]
     - extract()  [controllers/FileManagerController.php]
     - shareFile()  [controllers/FileManagerController.php]
     - shareFolder()  [controllers/FileManagerController.php]

  🚨 FinancialProFormaController (2 methods)
     - generate()  [controllers/FinancialProFormaController.php]
     - compare()  [controllers/FinancialProFormaController.php]

  🚨 ForecasterController (4 methods)
     - createForecast()  [controllers/ForecasterController.php]
     - createScenario()  [controllers/ForecasterController.php]
     - createFinancing()  [controllers/ForecasterController.php]
     - createInvestment()  [controllers/ForecasterController.php]

  🚨 HelpDeskController (3 methods)
     - chatAssignSession()  [controllers/HelpDeskController.php]
     - chatEndSession()  [controllers/HelpDeskController.php]
     - chatCreateSession()  [controllers/HelpDeskController.php]

  🚨 InternalNoteAPIController (1 methods)
     - index()  [controllers/InternalNoteAPIController.php]

  🚨 MFAController (3 methods)
     - verifyForm()  [controllers/MFAController.php]
     - verify()  [controllers/MFAController.php]
     - resendOTP()  [controllers/MFAController.php]

  🚨 MRPController (4 methods)
     - calculate()  [controllers/MRPController.php]
     - generateRequisitions()  [controllers/MRPController.php]
     - autoCalculateSafetyStock()  [controllers/MRPController.php]
     - convertToPO()  [controllers/MRPController.php]

  🚨 MachineDataController (5 methods)
     - updateStatus()  [controllers/MachineDataController.php]
     - updateProduction()  [controllers/MachineDataController.php]
     - updateUtilization()  [controllers/MachineDataController.php]
     - getStatus()  [controllers/MachineDataController.php]
     - health()  [controllers/MachineDataController.php]

  🚨 MaintenanceController (6 methods)
     - createSchedule()  [controllers/MaintenanceController.php]
     - storeSchedule()  [controllers/MaintenanceController.php]
     - createWorkOrder()  [controllers/MaintenanceController.php]
     - storeWorkOrder()  [controllers/MaintenanceController.php]
     - createDowntime()  [controllers/MaintenanceController.php]
     - storeDowntime()  [controllers/MaintenanceController.php]

  🚨 MessagingController (5 methods)
     - createChannel()  [controllers/MessagingController.php]
     - addMember()  [controllers/MessagingController.php]
     - uploadFile()  [controllers/MessagingController.php]
     - addReaction()  [controllers/MessagingController.php]
     - leaveChannel()  [controllers/MessagingController.php]

  🚨 NDAController (3 methods)
     - publicSign()  [controllers/NDAController.php]
     - signNDA()  [controllers/NDAController.php]
     - declineNDA()  [controllers/NDAController.php]

  🚨 NDATemplateController (1 methods)
     - toggle()  [controllers/NDATemplateController.php]

  🚨 NetworkMonitorController (8 methods)
     - status()  [controllers/NetworkMonitorController.php]
     - logs()  [controllers/NetworkMonitorController.php]
     - statistics()  [controllers/NetworkMonitorController.php]
     - feed()  [controllers/NetworkMonitorController.php]
     - clearLogs()  [controllers/NetworkMonitorController.php]
     - addAllowedHost()  [controllers/NetworkMonitorController.php]
     - testConnection()  [controllers/NetworkMonitorController.php]
     - logDetail()  [controllers/NetworkMonitorController.php]

  🚨 NextcloudController (5 methods)
     - settings()  [controllers/NextcloudController.php]
     - viewDocument()  [controllers/NextcloudController.php]
     - quickCreateWord()  [controllers/NextcloudController.php]
     - quickCreateExcel()  [controllers/NextcloudController.php]
     - quickCreatePowerPoint()  [controllers/NextcloudController.php]

  🚨 NextcloudSSOController (1 methods)
     - validateToken()  [controllers/NextcloudSSOController.php]

  🚨 NotificationController (4 methods)
     - getUnread()  [controllers/NotificationController.php]
     - markAsRead()  [controllers/NotificationController.php]
     - markAllAsRead()  [controllers/NotificationController.php]
     - delete()  [controllers/NotificationController.php]

  🚨 OpportunityController (5 methods)
     - addTask()  [controllers/OpportunityController.php]
     - logReceivedEmail()  [controllers/OpportunityController.php]
     - uploadDocument()  [controllers/OpportunityController.php]
     - addCompetitor()  [controllers/OpportunityController.php]
     - assign()  [controllers/OpportunityController.php]

  🚨 PeriodClosingController (1 methods)
     - processClose()  [controllers/PeriodClosingController.php]

  🚨 PermissionGroupController (2 methods)
     - assignPermissions()  [controllers/PermissionGroupController.php]
     - reorder()  [controllers/PermissionGroupController.php]

  🚨 PipedriveImportController (3 methods)
     - index()  [controllers/PipedriveImportController.php]
     - viewLog()  [controllers/PipedriveImportController.php]
     - getStats()  [controllers/PipedriveImportController.php]

  🚨 PricingRuleController (1 methods)
     - calculatePrice()  [controllers/PricingRuleController.php]

  🚨 ProFormaController (1 methods)
     - calculate()  [controllers/ProFormaController.php]

  🚨 ProductForecastController (1 methods)
     - gettingStarted()  [controllers/ProductForecastController.php]

  🚨 ProjectsController (31 methods)
     - dashboard()  [controllers/ProjectsController.php]
     - myTasks()  [controllers/ProjectsController.php]
     - index()  [controllers/ProjectsController.php]
     - show()  [controllers/ProjectsController.php]
     - listView()  [controllers/ProjectsController.php]
     - moveTask()  [controllers/ProjectsController.php]
     - getTask()  [controllers/ProjectsController.php]
     - addComment()  [controllers/ProjectsController.php]
     - assignUser()  [controllers/ProjectsController.php]
     - unassignUser()  [controllers/ProjectsController.php]
     - addChecklistItem()  [controllers/ProjectsController.php]
     - toggleChecklistItem()  [controllers/ProjectsController.php]
     - addTeamMember()  [controllers/ProjectsController.php]
     - addTeamGroup()  [controllers/ProjectsController.php]
     - assignGroupToTask()  [controllers/ProjectsController.php]
     - unassignGroupFromTask()  [controllers/ProjectsController.php]
     - financials()  [controllers/ProjectsController.php]
     - createTransaction()  [controllers/ProjectsController.php]
     - storeTransaction()  [controllers/ProjectsController.php]
     - editTransaction()  [controllers/ProjectsController.php]
     - linkTransactionToTask()  [controllers/ProjectsController.php]
     - migrateTransactions()  [controllers/ProjectsController.php]
     - processMigration()  [controllers/ProjectsController.php]
     - gantt()  [controllers/ProjectsController.php]
     - calculateCriticalPath()  [controllers/ProjectsController.php]
     - addTaskDependency()  [controllers/ProjectsController.php]
     - resources()  [controllers/ProjectsController.php]
     - resourceDayDetails()  [controllers/ProjectsController.php]
     - autoAllocateResources()  [controllers/ProjectsController.php]
     - getTaskComments()  [controllers/ProjectsController.php]
     - addTaskComment()  [controllers/ProjectsController.php]

  🚨 PromotionController (2 methods)
     - validateCode()  [controllers/PromotionController.php]
     - applyPromotion()  [controllers/PromotionController.php]

  🚨 QualityController (4 methods)
     - createInspection()  [controllers/QualityController.php]
     - completeInspection()  [controllers/QualityController.php]
     - createNCR()  [controllers/QualityController.php]
     - createTemplate()  [controllers/QualityController.php]

  🚨 QuoteController (2 methods)
     - acceptQuote()  [controllers/QuoteController.php]
     - declineQuote()  [controllers/QuoteController.php]

  🚨 ReturnController (1 methods)
     - complete()  [controllers/ReturnController.php]

  🚨 SalesReportController (10 methods)
     - getSummary()  [controllers/SalesReportController.php]
     - getTopProducts()  [controllers/SalesReportController.php]
     - getTopCustomers()  [controllers/SalesReportController.php]
     - getByStatus()  [controllers/SalesReportController.php]
     - getByChannel()  [controllers/SalesReportController.php]
     - getInvoiceAnalytics()  [controllers/SalesReportController.php]
     - getPaymentAnalytics()  [controllers/SalesReportController.php]
     - getCategoryPerformance()  [controllers/SalesReportController.php]
     - getSalesGrowth()  [controllers/SalesReportController.php]
     - getQuoteConversion()  [controllers/SalesReportController.php]

  🚨 SchedulingController (3 methods)
     - autoSchedule()  [controllers/SchedulingController.php]
     - rescheduleAssignment()  [controllers/SchedulingController.php]
     - createAssignment()  [controllers/SchedulingController.php]

  🚨 SearchController (1 methods)
     - search()  [controllers/SearchController.php]

  🚨 SettingsController (1 methods)
     - testSmtpConnection()  [controllers/SettingsController.php]

  🚨 ShopFloorController (3 methods)
     - startProduction()  [controllers/ShopFloorController.php]
     - pauseProduction()  [controllers/ShopFloorController.php]
     - completeProduction()  [controllers/ShopFloorController.php]

  🚨 SupportController (1 methods)
     - addResponse()  [controllers/SupportController.php]

  🚨 TaxPaymentController (1 methods)
     - calculatePeriodTax()  [controllers/TaxPaymentController.php]

  🚨 TransferController (2 methods)
     - receive()  [controllers/TransferController.php]
     - cancel()  [controllers/TransferController.php]

  🚨 UserGroupController (2 methods)
     - addMember()  [controllers/UserGroupController.php]
     - addUse()  [controllers/UserGroupController.php]

═══════════════════════════════════════════════════════════════
SUMMARY
═══════════════════════════════════════════════════════════════
✓ Intentionally Public:  9 (OK)
⚠ Test/Dev Controllers:  10 (Remove/Protect)
? Needs Review:          11 (Evaluate)
⏳ Auth Only:            107 (Medium Priority)
🚨 Needs Protection:     165 (HIGH PRIORITY!)
─────────────────────────────────────────────────────────────
Total:                   302 methods

🚨 IMMEDIATE ACTION REQUIRED:
165 methods need protection added immediately!

⚠ BEFORE PRODUCTION:
Remove 10 test/dev methods or add admin protection
