execute($workspaceInvite, $user); if ($this->request->expectsJson()) { return $this->success([ 'workspace' => $workspaceInvite->workspace->loadCount( 'members', ), ]); } else { return redirect(WORKSPACE_HOME_ROUTE); } } else { Session::put('workspaceInvite', $workspaceInvite->id); if (User::where('email', $workspaceInvite->email)->exists()) { return redirect( "workspace/join/login?email={$workspaceInvite->email}", ); } else { return redirect( "workspace/join/register?email={$workspaceInvite->email}", ); } } } public function destroy(Workspace $workspace, int $userId) { $this->authorize('destroy', [ WorkspaceMember::class, $workspace, $userId, ]); app(RemoveMemberFromWorkspace::class)->execute($workspace, $userId); return $this->success(); } public function changeRole(Workspace $workspace, int $memberId) { $this->authorize('update', [WorkspaceMember::class, $workspace]); $validatedData = $this->request->validate([ 'roleId' => 'required|integer', ]); app(WorkspaceMember::class) ->where('id', $memberId) ->update(['role_id' => $validatedData['roleId']]); return $this->success(); } }