diff --git a/app/app/Helpers/MainHelper.php b/app/app/Helpers/MainHelper.php index 416e41ee7..a8764fcde 100755 --- a/app/app/Helpers/MainHelper.php +++ b/app/app/Helpers/MainHelper.php @@ -15,6 +15,7 @@ use App\ApiCredential; use App\ApiCredentialKVStore; use App\SupportTicket; +use App\WorkspaceSuspension; use App\Helpersa\WebSvcHelper; use Config; use Auth; @@ -1302,23 +1303,13 @@ public static function numTicketsOpen() { } public static function isWorkspaceSuspended($workspaceId) { - $gracePeriod = 7 * 24 * 3600; // 7 days in seconds - - $suspensions = \App\WorkspaceSuspension::where('workspace_id', $workspaceId)->get(); - - $now = new \DateTime(); - - foreach ($suspensions as $suspension) { - $suspendedAt = $suspension->suspended_at; - $gracePeriodExtension = $suspension->grace_period_extension ?? 0; - - $totalGracePeriod = $gracePeriod + ($gracePeriodExtension * 3600); - - $suspensionDeadline = (new \DateTime($suspendedAt->format('Y-m-d H:i:s')))->modify("+{$totalGracePeriod} seconds"); - - if ($now > $suspensionDeadline) { - return true; - } + $suspensions = WorkspaceSuspension::where('workspace_id', $workspaceId) + ->where('status', 'SUSPENDED') + ->orderBy('suspended_at', 'desc') + ->count(); + + if ($suspensions > 0) { + return true; } return false; diff --git a/app/app/Http/Controllers/Admin/WorkspaceController.php b/app/app/Http/Controllers/Admin/WorkspaceController.php index 29ca5d7ca..2d7f96d6f 100755 --- a/app/app/Http/Controllers/Admin/WorkspaceController.php +++ b/app/app/Http/Controllers/Admin/WorkspaceController.php @@ -49,9 +49,8 @@ public function index() public function create() { $gracePeriodExtension = null; - $activeSuspension = null; - $isWorkspaceSuspended = false; - return view('admin.workspace.create_edit', compact('gracePeriodExtension', 'activeSuspension', 'isWorkspaceSuspended')); + $isSuspended = null; + return view('admin.workspace.create_edit', compact('gracePeriodExtension', 'isSuspended')); } /** @@ -89,9 +88,12 @@ public function edit(Workspace $workspace) $routingACLs = WorkspaceHelper::getACLs($workspace); $planHistory = PlanUsagePeriod::where("workspace_id", $workspace->id)->get(); $gracePeriodExtension = WorkspaceSuspensionHelper::getGracePeriodExtension($workspace->id); - $activeSuspension = WorkspaceSuspensionHelper::getActiveSuspension($workspace->id); - $isWorkspaceSuspended = !empty($activeSuspension); - return view('admin.workspace.create_edit', compact('workspace', 'users', 'billingHistory', 'billingInfo', 'usageTriggers', 'routingACLs', 'planHistory', 'invoices', 'gracePeriodExtension', 'activeSuspension', 'isWorkspaceSuspended')); + $isSuspended = NULL; + if (MainHelper::isWorkspaceSuspended($workspace->id)) { + $isSuspended = TRUE; + } + + return view('admin.workspace.create_edit', compact('workspace', 'users', 'billingHistory', 'billingInfo', 'usageTriggers', 'routingACLs', 'planHistory', 'invoices', 'gracePeriodExtension', 'isSuspended')); } /** diff --git a/app/resources/views/admin/workspace/create_edit.blade.php b/app/resources/views/admin/workspace/create_edit.blade.php index 9b3aef3b5..4ed830fb9 100755 --- a/app/resources/views/admin/workspace/create_edit.blade.php +++ b/app/resources/views/admin/workspace/create_edit.blade.php @@ -36,6 +36,15 @@ {{ $errors->first('name', ':message') }} + @if (isset($workspace)) +