diff --git a/b0esche_cloud/lib/blocs/editor_session/editor_session_bloc.dart b/b0esche_cloud/lib/blocs/editor_session/editor_session_bloc.dart index 03d941b..02b1fdf 100644 --- a/b0esche_cloud/lib/blocs/editor_session/editor_session_bloc.dart +++ b/b0esche_cloud/lib/blocs/editor_session/editor_session_bloc.dart @@ -52,9 +52,9 @@ class EditorSessionBloc extends Bloc { return; } if (!session.readOnly) { - emit(EditorSessionActive(editUrl: session.editUrl)); + emit(EditorSessionActive(editUrl: session.editUrl, token: session.token)); } else { - emit(EditorSessionReadOnly(viewUrl: session.editUrl)); + emit(EditorSessionReadOnly(viewUrl: session.editUrl, token: session.token)); } _expiryTimer = Timer( session.expiresAt.difference(DateTime.now()), diff --git a/b0esche_cloud/lib/blocs/editor_session/editor_session_state.dart b/b0esche_cloud/lib/blocs/editor_session/editor_session_state.dart index 29a37a3..958be4b 100644 --- a/b0esche_cloud/lib/blocs/editor_session/editor_session_state.dart +++ b/b0esche_cloud/lib/blocs/editor_session/editor_session_state.dart @@ -13,20 +13,22 @@ class EditorSessionStarting extends EditorSessionState {} class EditorSessionActive extends EditorSessionState { final Uri editUrl; + final String token; - const EditorSessionActive({required this.editUrl}); + const EditorSessionActive({required this.editUrl, required this.token}); @override - List get props => [editUrl]; + List get props => [editUrl, token]; } class EditorSessionReadOnly extends EditorSessionState { final Uri viewUrl; + final String token; - const EditorSessionReadOnly({required this.viewUrl}); + const EditorSessionReadOnly({required this.viewUrl, required this.token}); @override - List get props => [viewUrl]; + List get props => [viewUrl, token]; } class EditorSessionFailed extends EditorSessionState { diff --git a/go_cloud/internal/http/routes.go b/go_cloud/internal/http/routes.go index 56e1f5b..a9abdf0 100644 --- a/go_cloud/internal/http/routes.go +++ b/go_cloud/internal/http/routes.go @@ -483,7 +483,7 @@ func editorHandler(w http.ResponseWriter, r *http.Request, db *database.DB, audi // Build Collabora editor URL - Collabora needs the file download URL as the WOPISrc parameter editUrl := fmt.Sprintf("https://go.b0esche.cloud/orgs/%s/files/download?path=%s", orgID.String(), url.QueryEscape(file.Path)) - collaboraUrl := fmt.Sprintf("https://collabora.b0esche.cloud/lool/dist/mobile/cool.html?WOPISrc=%s", url.QueryEscape(editUrl)) + collaboraUrl := fmt.Sprintf("https://of.b0esche.cloud/lool/dist/mobile/cool.html?WOPISrc=%s", url.QueryEscape(editUrl)) // Check if user can edit (for now, all org members can edit) readOnly := false