Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/plugin/onlyoffice/ajax/saveas.php

86 lines
2.3 KiB

<?php
/**
*
* (c) Copyright Ascensio System SIA 2021
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
require_once __DIR__.'/../../../main/inc/global.inc.php';
use ChamiloSession as Session;
$userId = api_get_user_id();
$body = json_decode(file_get_contents('php://input'), true);
$title = $body["title"];
$url = $body["url"];
$folderId = !empty($body["folderId"]) ? $body["folderId"] : 0;
$sessionId = !empty($body["sessionId"]) ? $body["sessionId"] : 0;
$courseId = !empty($body["courseId"]) ? $body["courseId"] : 0;
$groupId = !empty($body["groupId"]) ? $body["groupId"] : 0;
$courseInfo = api_get_course_info_by_id($courseId);
$courseCode = $courseInfo["code"];
$isMyDir = false;
if (!empty($folderId)) {
$folderInfo = DocumentManager::get_document_data_by_id(
$folderId,
$courseCode,
true,
$sessionId
);
$isMyDir = DocumentManager::is_my_shared_folder(
$userId,
$folderInfo["absolute_path"],
$sessionId
);
}
$groupRights = Session::read("group_member_with_upload_rights");
$isAllowToEdit = api_is_allowed_to_edit(true, true);
if (!($isAllowToEdit || $isMyDir || $groupRights)) {
echo json_encode(["error" => "Not permitted"]);
return;
}
$fileExt = strtolower(pathinfo($title, PATHINFO_EXTENSION));
$baseName = strtolower(pathinfo($title, PATHINFO_FILENAME));
$result = FileUtility::createFile(
$baseName,
$fileExt,
$folderId,
$userId,
$sessionId,
$courseId,
$groupId,
$url
);
if (isset($result["error"])) {
if ($result["error"] === "fileIsExist") {
$result["error"] = "File is exist";
}
if ($result["error"] === "impossibleCreateFile") {
$result["error"] = "Impossible to create file";
}
echo json_encode($result);
return;
}
echo json_encode(["success" => "File is created"]);