diff --git a/common/rpc-service.c b/common/rpc-service.c index 8d02bc8..afbca6d 100644 --- a/common/rpc-service.c +++ b/common/rpc-service.c @@ -5373,12 +5373,16 @@ seafile_set_repo_status(const char *repo_id, int status, GError **error) int seafile_get_repo_status(const char *repo_id, GError **error) { + int status; + if (!is_uuid_valid(repo_id)) { g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_BAD_ARGS, "Arguments error"); return -1; } - return seaf_repo_manager_get_repo_status(seaf->repo_mgr, repo_id); + status = seaf_repo_manager_get_repo_status(seaf->repo_mgr, repo_id); + + return (status == -1) ? 0 : status; } #endif /* SEAFILE_SERVER */ diff --git a/server/http-server.c b/server/http-server.c index 424a835..6f39c53 100644 --- a/server/http-server.c +++ b/server/http-server.c @@ -375,7 +375,7 @@ check_permission (HttpServer *htp_server, const char *repo_id, const char *usern if (strcmp(op, "upload") == 0) { int status = seaf_repo_manager_get_repo_status(seaf->repo_mgr, repo_id); - if (status != REPO_STATUS_NORMAL) + if (status != REPO_STATUS_NORMAL && status != -1) return EVHTP_RES_FORBIDDEN; } diff --git a/server/upload-file.c b/server/upload-file.c index 112096b..8dc6001 100755 --- a/server/upload-file.c +++ b/server/upload-file.c @@ -2592,7 +2592,7 @@ check_access_token (const char *token, _repo_id = seafile_web_access_get_repo_id (webaccess); int status = seaf_repo_manager_get_repo_status(seaf->repo_mgr, _repo_id); - if (status != REPO_STATUS_NORMAL) { + if (status != REPO_STATUS_NORMAL && status != -1) { g_object_unref (webaccess); return -1; }