Fix WOPI: Use config for Nextcloud URL instead of hardcoded nc.b0esche.cloud

This commit is contained in:
Leon Bösche
2026-01-13 15:25:04 +01:00
parent afeb7a35ad
commit 8d9db29db2
2 changed files with 7 additions and 20 deletions

View File

@@ -111,7 +111,7 @@ func NewRouter(cfg *config.Config, db *database.DB, jwtManager *jwt.Manager, aut
})
// PutFile & Lock operations: POST /wopi/files/{fileId}/contents and POST /wopi/files/{fileId}
r.Post("/contents", func(w http.ResponseWriter, req *http.Request) {
wopiPutFileHandler(w, req, db, jwtManager)
wopiPutFileHandler(w, req, db, jwtManager, cfg)
})
// Lock operations: POST /wopi/files/{fileId}
r.Post("/", func(w http.ResponseWriter, req *http.Request) {

View File

@@ -348,9 +348,8 @@ func wopiGetFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB,
if file.UserID != nil && *file.UserID == userID {
canAccess = true
// Get user's WebDAV client - need to pass config
// For now, create a new WebDAV client without full config
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, "http://nc.b0esche.cloud", "admin", "")
// Get user's WebDAV client - use config
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, cfg.NextcloudURL, cfg.NextcloudUser, cfg.NextcloudPass)
if err != nil {
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
errors.WriteError(w, errors.CodeInternal, "Storage error", http.StatusInternalServerError)
@@ -361,13 +360,7 @@ func wopiGetFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB,
member, err := db.GetOrgMember(r.Context(), *file.OrgID, userID)
if err == nil && member != nil {
canAccess = true
// Create admin WebDAV client for org files
cfg := &config.Config{
NextcloudURL: "http://nc.b0esche.cloud",
NextcloudUser: "admin",
NextcloudPass: "",
NextcloudBase: "/",
}
// Create admin WebDAV client for org files - use config
webDAVClient = storage.NewWebDAVClient(cfg)
}
}
@@ -402,7 +395,7 @@ func wopiGetFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB,
// WOPIPutFileHandler handles POST /wopi/files/{fileId}/contents
// Uploads edited document back to storage
func wopiPutFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB, jwtManager *jwt.Manager) {
func wopiPutFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB, jwtManager *jwt.Manager, cfg *config.Config) {
fileID := r.PathValue("fileId")
if fileID == "" {
errors.WriteError(w, errors.CodeInvalidArgument, "Missing fileId", http.StatusBadRequest)
@@ -446,7 +439,7 @@ func wopiPutFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB,
if file.UserID != nil && *file.UserID == userID {
canAccess = true
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, "http://nc.b0esche.cloud", "admin", "")
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, cfg.NextcloudURL, cfg.NextcloudUser, cfg.NextcloudPass)
if err != nil {
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
errors.WriteError(w, errors.CodeInternal, "Storage error", http.StatusInternalServerError)
@@ -456,13 +449,7 @@ func wopiPutFileHandler(w http.ResponseWriter, r *http.Request, db *database.DB,
member, err := db.GetOrgMember(r.Context(), *file.OrgID, userID)
if err == nil && member != nil {
canAccess = true
// Create admin WebDAV client for org files
cfg := &config.Config{
NextcloudURL: "http://nc.b0esche.cloud",
NextcloudUser: "admin",
NextcloudPass: "",
NextcloudBase: "/",
}
// Create admin WebDAV client for org files - use config
webDAVClient = storage.NewWebDAVClient(cfg)
}
}