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}
|
// PutFile & Lock operations: POST /wopi/files/{fileId}/contents and POST /wopi/files/{fileId}
|
||||||
r.Post("/contents", func(w http.ResponseWriter, req *http.Request) {
|
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}
|
// Lock operations: POST /wopi/files/{fileId}
|
||||||
r.Post("/", func(w http.ResponseWriter, req *http.Request) {
|
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 {
|
if file.UserID != nil && *file.UserID == userID {
|
||||||
canAccess = true
|
canAccess = true
|
||||||
// Get user's WebDAV client - need to pass config
|
// Get user's WebDAV client - use config
|
||||||
// For now, create a new WebDAV client without full config
|
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, cfg.NextcloudURL, cfg.NextcloudUser, cfg.NextcloudPass)
|
||||||
webDAVClient, err = getUserWebDAVClient(r.Context(), db, userID, "http://nc.b0esche.cloud", "admin", "")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
|
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
|
||||||
errors.WriteError(w, errors.CodeInternal, "Storage error", http.StatusInternalServerError)
|
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)
|
member, err := db.GetOrgMember(r.Context(), *file.OrgID, userID)
|
||||||
if err == nil && member != nil {
|
if err == nil && member != nil {
|
||||||
canAccess = true
|
canAccess = true
|
||||||
// Create admin WebDAV client for org files
|
// Create admin WebDAV client for org files - use config
|
||||||
cfg := &config.Config{
|
|
||||||
NextcloudURL: "http://nc.b0esche.cloud",
|
|
||||||
NextcloudUser: "admin",
|
|
||||||
NextcloudPass: "",
|
|
||||||
NextcloudBase: "/",
|
|
||||||
}
|
|
||||||
webDAVClient = storage.NewWebDAVClient(cfg)
|
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
|
// WOPIPutFileHandler handles POST /wopi/files/{fileId}/contents
|
||||||
// Uploads edited document back to storage
|
// 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")
|
fileID := r.PathValue("fileId")
|
||||||
if fileID == "" {
|
if fileID == "" {
|
||||||
errors.WriteError(w, errors.CodeInvalidArgument, "Missing fileId", http.StatusBadRequest)
|
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 {
|
if file.UserID != nil && *file.UserID == userID {
|
||||||
canAccess = true
|
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 {
|
if err != nil {
|
||||||
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
|
fmt.Printf("[WOPI-STORAGE] Failed to get user WebDAV client: %v\n", err)
|
||||||
errors.WriteError(w, errors.CodeInternal, "Storage error", http.StatusInternalServerError)
|
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)
|
member, err := db.GetOrgMember(r.Context(), *file.OrgID, userID)
|
||||||
if err == nil && member != nil {
|
if err == nil && member != nil {
|
||||||
canAccess = true
|
canAccess = true
|
||||||
// Create admin WebDAV client for org files
|
// Create admin WebDAV client for org files - use config
|
||||||
cfg := &config.Config{
|
|
||||||
NextcloudURL: "http://nc.b0esche.cloud",
|
|
||||||
NextcloudUser: "admin",
|
|
||||||
NextcloudPass: "",
|
|
||||||
NextcloudBase: "/",
|
|
||||||
}
|
|
||||||
webDAVClient = storage.NewWebDAVClient(cfg)
|
webDAVClient = storage.NewWebDAVClient(cfg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user