helpers = ['form', 'url']; // Caution: Do not edit this line. parent::initController($request, $response, $logger); // Preload any models, libraries, etc, here. $this->session = service('session'); $workspaceList = []; $activeWorkspaceId = (int) $this->session->get('active_workspace_id'); $userId = (int) $this->session->get('user_id'); if ($userId > 0) { $workspaceList = (new WorkspaceModel())->forUser($userId); if ($activeWorkspaceId <= 0 && $workspaceList !== []) { $activeWorkspaceId = (int) $workspaceList[0]['id']; $this->session->set('active_workspace_id', $activeWorkspaceId); } } $alertBadgeCount = 0; if ($userId > 0 && $activeWorkspaceId > 0) { $alertBadgeCount = (new AlertHistoryModel())->countRecentTriggeredAlerts($activeWorkspaceId, 3600); } $themePref = (string) ($this->session->get('theme_preference') ?? 'light'); if (! in_array($themePref, ['light', 'dark', 'system'], true)) { $themePref = 'light'; } $canWorkspaceAdmin = false; if ((string) $this->session->get('role') === 'superadmin') { $canWorkspaceAdmin = true; } elseif ($userId > 0 && $activeWorkspaceId > 0) { $mem = (new WorkspaceMemberModel()) ->where('workspace_id', $activeWorkspaceId) ->where('user_id', $userId) ->first(); $canWorkspaceAdmin = $mem !== null && (string) ($mem['role'] ?? '') === 'admin'; } $this->sharedData = [ 'currentUser' => [ 'id' => $this->session->get('user_id'), 'name' => $this->session->get('name'), 'email' => $this->session->get('email'), 'role' => $this->session->get('role'), ], 'activeWorkspaceId' => $activeWorkspaceId, 'workspaceList' => $workspaceList, 'alertBadgeCount' => $alertBadgeCount, 'themePreference' => $themePref, 'canWorkspaceAdmin' => $canWorkspaceAdmin, ]; service('renderer')->setData($this->sharedData); } }