@@ -27,37 +27,31 @@ public function index(Request $request, Response $response)
2727 public function dashboard (Request $ request , Response $ response )
2828 {
2929 $ db = $ this ->container ->get ('db ' );
30-
31- if ($ _SESSION ['auth_roles ' ] === 0 ) {
32- $ clid = null ;
30+ $ isAdmin = $ _SESSION ["auth_roles " ] == 0 ;
31+ $ userId = $ _SESSION ["auth_user_id " ];
32+
33+ if ($ isAdmin ) {
34+ // Admin: total counts
35+ $ userCount = $ db ->selectValue ('SELECT COUNT(*) FROM users ' );
36+ $ zoneCount = $ db ->selectValue ('SELECT COUNT(*) FROM zones ' );
37+ $ ticketCount = $ db ->selectValue ('SELECT COUNT(*) FROM support_tickets ' );
38+
39+ $ openTickets = $ db ->selectValue ('SELECT COUNT(*) FROM support_tickets WHERE status = ? ' , ['Open ' ]);
3340 } else {
34- $ result = $ db ->selectRow ('SELECT zone_id FROM zone_users WHERE user_id = ? ' , [$ _SESSION ['auth_user_id ' ]]);
35- if (is_array ($ result )) {
36- $ clid = $ result ['zone_id ' ];
37- } else if (is_object ($ result ) && method_exists ($ result , 'fetch ' )) {
38- $ clid = $ result ->fetch ();
39- } else {
40- $ clid = null ;
41- }
42- }
41+ // Regular user: filtered by user_id
42+ $ userCount = null ; // Don't send this to view for users
43+ $ zoneCount = $ db ->selectValue ('SELECT COUNT(*) FROM zones WHERE client_id = ? ' , [$ userId ]);
44+ $ ticketCount = $ db ->selectValue ('SELECT COUNT(*) FROM support_tickets WHERE user_id = ? ' , [$ userId ]);
4345
44- if ($ clid !== null ) {
45- $ zones = $ db ->selectValue ('SELECT count(id) as zones FROM zones WHERE client_id = ? ' , [$ clid ]);
46- $ latest_zones = $ db ->select ('SELECT domain_name, created_at FROM zones WHERE client_id = ? ORDER BY created_at DESC LIMIT 10 ' , [$ clid ]);
47-
48- return view ($ response , 'admin/dashboard/index.twig ' , [
49- 'zones ' => $ zones ,
50- 'latest_zones ' => $ latest_zones ,
51- ]);
52- } else {
53- $ zones = $ db ->selectValue ('SELECT count(id) as zones FROM zones ' );
54- $ latest_zones = $ db ->select ('SELECT domain_name, created_at FROM zones ORDER BY created_at DESC LIMIT 10 ' );
55-
56- return view ($ response , 'admin/dashboard/index.twig ' , [
57- 'zones ' => $ zones ,
58- 'latest_zones ' => $ latest_zones ,
59- ]);
46+ $ openTickets = $ db ->selectValue ('SELECT COUNT(*) FROM support_tickets WHERE user_id = ? AND status = ? ' , [$ userId , 'Open ' ]);
6047 }
48+
49+ return view ($ response , 'admin/dashboard/index.twig ' , [
50+ 'userCount ' => $ userCount ,
51+ 'zoneCount ' => $ zoneCount ,
52+ 'ticketCount ' => $ ticketCount ,
53+ 'openTickets ' => $ openTickets
54+ ]);
6155 }
6256
6357 public function mode (Request $ request , Response $ response )
0 commit comments