Fix WOPI: Use config for Nextcloud URL instead of hardcoded nc.b0esche.cloud
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user