diff --git a/core/class/jsondb/JsonDb.class.php b/core/class/jsondb/JsonDb.class.php
index 321ffe5..29e2163 100644
--- a/core/class/jsondb/JsonDb.class.php
+++ b/core/class/jsondb/JsonDb.class.php
@@ -142,8 +142,8 @@ class JsonDb extends \Prowebcraft\Dot
*/
public function save()
{
- /// $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT | JSON_PRETTY_PRINT);
- $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
+ $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT | JSON_PRETTY_PRINT);
+ // $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
$l = strlen($v);
$t = 0;
while ($t < 5) {
diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php
index 43397e0..e7e466f 100644
--- a/core/module/install/ressource/defaultdata.php
+++ b/core/module/install/ressource/defaultdata.php
@@ -224,7 +224,7 @@ class init extends common
'1' => [
'name' => 'Membre simple',
'readonly' => false,
- 'permanent' => false,
+ 'permanent' => true,
'comment' => 'Accède aux pages réservées',
'filemanager' => false,
'file' => [
@@ -261,8 +261,8 @@ class init extends common
'copycut' => false,
'chmod' => false,
'share' => false,
- 'coursePath' => '',
- 'homePath' => ''
+ 'coursePath' => 'none',
+ 'homePath' => 'none'
],
'page' => [
'add' => false,
@@ -357,7 +357,7 @@ class init extends common
'copycut' => false,
'chmod' => false,
'share' => true,
- 'coursePath' => '/site/file/source/partage/',
+ 'coursePath' => 'none',
'homePath' => '/site/file/source/partage/'
],
'page' => [
@@ -458,7 +458,7 @@ class init extends common
'copycut' => false,
'chmod' => false,
'share' => true,
- 'coursePath' => '',
+ 'coursePath' => 'none',
'homePath' => '/site/file/source/partage/'
],
'page' => [
@@ -518,7 +518,7 @@ class init extends common
'2' => [
'name' => 'Rédacteur',
'readonly' => false,
- 'permanent' => true,
+ 'permanent' => false,
'comment' => 'Tous les droits d\'édition des espaces',
'filemanager' => true,
'file' => [
@@ -555,7 +555,7 @@ class init extends common
'copycut' => true,
'chmod' => true,
'share' => true,
- 'coursePath' => '',
+ 'coursePath' => 'none',
'homePath' => '/site/file/source/partage/'
],
'page' => [
diff --git a/core/module/user/user.php b/core/module/user/user.php
index 6b6fff5..2f3550a 100644
--- a/core/module/user/user.php
+++ b/core/module/user/user.php
@@ -692,8 +692,8 @@ class user extends common
'rename' => $this->getInput('profilEditFolderRename', helper::FILTER_BOOLEAN),
'copycut' => $this->getInput('profilEditFolderCopycut', helper::FILTER_BOOLEAN),
'chmod' => $this->getInput('profilEditFolderChmod', helper::FILTER_BOOLEAN),
- 'coursePath' => preg_replace('/^\\./', '', $this->getInput('profilEditCoursePath')), // Supprime le point pour préserver le chemin
- 'homePath' => preg_replace('/^\\./', '', $this->getInput('profilEditHomePath')), // Supprime le point pour préserver le chemin
+ 'coursePath' => $this->getInput('profilEditCoursePath'), // Supprime le point pour préserver le chemin
+ 'homePath' => $this->getInput('profilEditHomePath'), // Supprime le point pour préserver le chemin
],
'page' => [
'add' => $this->getInput('profilEditPageAdd', helper::FILTER_BOOLEAN),
@@ -757,21 +757,20 @@ class user extends common
}
// Chemin vers les dossiers du gestionnaire de fichier
- self::$sharePath = $this->getSubdirectories('./site/file/source');
+ self::$sharePath = $this->getSubdirectories('site/file/source');
// Exclure les espaces des cours
- /*
foreach (array_keys($this->getData(['course'])) as $courseId) {
self::$sharePath = array_filter(self::$sharePath, function ($key) use ($courseId) {
return strpos($key, $courseId) === false;
});
}
- */
+
self::$sharePath = array_flip(self::$sharePath);
self::$sharePath = array_merge(['none' => 'Aucun Accès'], self::$sharePath);
- self::$sharePath = array_merge(['' => 'Confiné dans le dossier de l\'espace ouvert'], self::$sharePath);
- self::$sharePath = array_merge(['./site/file/source/' => 'Tout le gestionnaire de fichiers'], self::$sharePath);
+ self::$sharePath = array_merge(['course' => 'Confiné dans le dossier de l\'espace ouvert'], self::$sharePath);
+ self::$sharePath = array_merge(['/site/file/source/' => 'Tout le gestionnaire de fichiers'], self::$sharePath);
// Liste des modules installés
self::$listModules = helper::getModules();
@@ -869,8 +868,8 @@ class user extends common
'rename' => $this->getInput('profilAddFolderRename', helper::FILTER_BOOLEAN),
'copycut' => $this->getInput('profilAddFolderCopycut', helper::FILTER_BOOLEAN),
'chmod' => $this->getInput('profilAddFolderChmod', helper::FILTER_BOOLEAN),
- 'coursePath' => preg_replace('/^\\./', '', $this->getInput('profilAddCoursePath')), // Supprime le point pour préserver le chemin
- 'homePath' => preg_replace('/^\\./', '', $this->getInput('profilAddHomePath')), // Supprime le point pour préserver le chemin
+ 'coursePath' => $this->getInput('profilAddCoursePath'), // Supprime le point pour préserver le chemin
+ 'homePath' => $this->getInput('profilAddHomePath'), // Supprime le point pour préserver le chemin
],
'page' => [
'add' => $this->getInput('profilAddPageAdd', helper::FILTER_BOOLEAN),
@@ -959,7 +958,7 @@ class user extends common
}
// Chemin vers les dossiers du gestionnaire de fichier
- self::$sharePath = $this->getSubdirectories('./site/file/source');
+ self::$sharePath = $this->getSubdirectories('site/file/source');
// Exclure les espaces des cours
/*
@@ -972,7 +971,7 @@ class user extends common
self::$sharePath = array_flip(self::$sharePath);
self::$sharePath = array_merge(['none' => 'Aucun Accès'], self::$sharePath);
- self::$sharePath = array_merge(['' => 'Confiné dans le dossier de l\'espace ouvert'], self::$sharePath);
+ self::$sharePath = array_merge(['course' => 'Confiné dans le dossier de l\'espace ouvert'], self::$sharePath);
self::$sharePath = array_merge(['./site/file/source/' => 'Tout le gestionnaire de fichiers'], self::$sharePath);
// Liste des modules installés
diff --git a/core/module/user/view/profilEdit/profilEdit.php b/core/module/user/view/profilEdit/profilEdit.php
index b0b3428..f5acaf2 100644
--- a/core/module/user/view/profilEdit/profilEdit.php
+++ b/core/module/user/view/profilEdit/profilEdit.php
@@ -93,16 +93,14 @@
]); ?>
- getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'coursePath']));echo template::select('profilEditCoursePath', $module::$sharePath, [
'label' => 'Dossier depuis un espace',
'class' => 'filemanager',
/*
* 'none' interdit l'accès au gestionnaire de fichier
* Ce n'est pas un chemin donc on n'ajoute pas le .
*/
- 'selected' => $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'coursePath']) !== 'none'
- ? '.' . $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'coursePath'])
- : $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'coursePath'])
+ 'selected' => $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'coursePath'])
]); ?>
@@ -110,9 +108,7 @@
'label' => 'Dossier depuis l\'accueil',
'class' => 'filemanager',
// 'none' interdit l'accès au gestionnaire de fichier au niveau de l'accueil
- 'selected' => $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'homePath']) !== 'none'
- ? '.' . $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'homePath'])
- : $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'homePath'])
+ 'selected' => $this->getData(['profil', $this->getUrl(2), $this->getUrl(3), 'folder', 'homePath'])
]); ?>
diff --git a/core/vendor/filemanager/config/config.php b/core/vendor/filemanager/config/config.php
index d019cd4..bb4a781 100644
--- a/core/vendor/filemanager/config/config.php
+++ b/core/vendor/filemanager/config/config.php
@@ -52,30 +52,37 @@ if (!is_null($u) && !is_null($g) && !is_null($userId)) {
case 1:
// Accès contrôlés par le profil
$profil = $u['user'][$userId]['profil'];
+ $file = $g['profil'][$group][$profil]['file'];
+ $folder = $g['profil'][$group][$profil]['folder'];
// membre sans profil déclaré ou accès interdit, pas d'accès
if (
is_null($profil)
|| $g['profil'][$group][$profil]['filemanager'] === false
+ || $folder = $g['profil'][$group][$profil]['folder'] === 'none'
) {
exit("Accès interdit au gestionnaire de fichiers !
");
}
- $file = $g['profil'][$group][$profil]['file'];
- $folder = $g['profil'][$group][$profil]['folder'];
-
// Chemin du dossier partagé dans le profil
$sharedPathKey = ($courseId === 'home') ? 'homePath' : 'coursePath';
$sharedPath = isset($folder[$sharedPathKey]) ? $folder[$sharedPathKey] : '';
- // Un dossier renvoie vers le dossier confiné
- $uploadDir = empty($sharedPath) ? '/site/file/source/' . $courseId . '/' : $sharedPath;
+ // Accès non partagé
+ if (
+ $folder[$sharedPathKey] === 'none'
+ ) {
+ exit("Accès interdit au gestionnaire de fichiers !
");
+ }
- $currentPath = '../../..' . $uploadDir . '/';
+ // Un dossier renvoie vers le dossier confiné
+ $uploadDir = $sharedPath === 'course' ? '/site/file/source/' . $courseId . '/' : $sharedPath;
+
+ $currentPath = '../../../' . $uploadDir;
// Affiche un message d'erreur du le dossier partagé a été supprimé.
- if (is_dir($uploadDir) == false ) {
+ if (is_dir($currentPath) == false) {
exit("Le dossier partagé est inexistant, contactez l'administrateur.
");
- }
+ }
break;
default:
@@ -135,77 +142,77 @@ define('DEBUG_ERROR_MESSAGE', false); // TRUE or FALSE
$config = array(
/*
- |--------------------------------------------------------------------------
- | DON'T TOUCH (base url (only domain) of site).
- |--------------------------------------------------------------------------
- |
- | without final / (DON'T TOUCH)
- |
- */
+ |--------------------------------------------------------------------------
+ | DON'T TOUCH (base url (only domain) of site).
+ |--------------------------------------------------------------------------
+ |
+ | without final / (DON'T TOUCH)
+ |
+ */
'base_url' => ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']), array('off', 'no'))) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . rtrim(str_replace('/core/vendor/filemanager', '', pathinfo($_SERVER['PHP_SELF'])['dirname']), ' /'),
/*
- |--------------------------------------------------------------------------
- | path from base_url to base of upload folder
- |--------------------------------------------------------------------------
- |
- | with start and final /
- |
- */
+ |--------------------------------------------------------------------------
+ | path from base_url to base of upload folder
+ |--------------------------------------------------------------------------
+ |
+ | with start and final /
+ |
+ */
'upload_dir' => $uploadDir,
/*
- |--------------------------------------------------------------------------
- | relative path from filemanager folder to upload folder
- |--------------------------------------------------------------------------
- |
- | with final /
- |
- */
+ |--------------------------------------------------------------------------
+ | relative path from filemanager folder to upload folder
+ |--------------------------------------------------------------------------
+ |
+ | with final /
+ |
+ */
'current_path' => $currentPath,
/*
- |--------------------------------------------------------------------------
- | relative path from filemanager folder to thumbs folder
- |--------------------------------------------------------------------------
- |
- | with final /
- | DO NOT put inside upload folder
- |
- */
+ |--------------------------------------------------------------------------
+ | relative path from filemanager folder to thumbs folder
+ |--------------------------------------------------------------------------
+ |
+ | with final /
+ | DO NOT put inside upload folder
+ |
+ */
'thumbs_base_path' => '../../../site/file/thumb/',
/*
- |--------------------------------------------------------------------------
- | path from base_url to base of thumbs folder
- |--------------------------------------------------------------------------
- |
- | with final /
- | DO NOT put inside upload folder
- |
- */
+ |--------------------------------------------------------------------------
+ | path from base_url to base of thumbs folder
+ |--------------------------------------------------------------------------
+ |
+ | with final /
+ | DO NOT put inside upload folder
+ |
+ */
'thumbs_upload_dir' => '/thumb/',
/*
- |--------------------------------------------------------------------------
- | mime file control to define files extensions
- |--------------------------------------------------------------------------
- |
- | If you want to be forced to assign the extension starting from the mime type
- |
- */
+ |--------------------------------------------------------------------------
+ | mime file control to define files extensions
+ |--------------------------------------------------------------------------
+ |
+ | If you want to be forced to assign the extension starting from the mime type
+ |
+ */
'mime_extension_rename' => false,
/*
- |--------------------------------------------------------------------------
- | FTP configuration BETA VERSION
- |--------------------------------------------------------------------------
- |
- | If you want enable ftp use write these parametres otherwise leave empty
- | Remember to set base_url properly to point in the ftp server domain and
- | upload dir will be ftp_base_folder + upload_dir so without final /
- |
- */
+ |--------------------------------------------------------------------------
+ | FTP configuration BETA VERSION
+ |--------------------------------------------------------------------------
+ |
+ | If you want enable ftp use write these parametres otherwise leave empty
+ | Remember to set base_url properly to point in the ftp server domain and
+ | upload dir will be ftp_base_folder + upload_dir so without final /
+ |
+ */
'ftp_host' => false,
//put the FTP host
'ftp_user' => "user",
@@ -215,52 +222,52 @@ $config = array(
// Directory where place files before to send to FTP with final /
'ftp_temp_folder' => "../temp/",
/*
- |---------------------------------------------------------------------------
- | path from ftp_base_folder to base of thumbs folder with start and final /
- |---------------------------------------------------------------------------
- */
+ |---------------------------------------------------------------------------
+ | path from ftp_base_folder to base of thumbs folder with start and final /
+ |---------------------------------------------------------------------------
+ */
'ftp_thumbs_dir' => '/thumbs/',
'ftp_ssl' => false,
'ftp_port' => 21,
/* EXAMPLE
- 'ftp_host' => "host.com",
- 'ftp_user' => "test@host.com",
- 'ftp_pass' => "pass.1",
- 'ftp_base_folder' => "",
- 'ftp_base_url' => "http://host.com/testFTP",
- */
+ 'ftp_host' => "host.com",
+ 'ftp_user' => "test@host.com",
+ 'ftp_pass' => "pass.1",
+ 'ftp_base_folder' => "",
+ 'ftp_base_url' => "http://host.com/testFTP",
+ */
/*
- |--------------------------------------------------------------------------
- | Multiple files selection
- |--------------------------------------------------------------------------
- | The user can delete multiple files, select all files , deselect all files
- */
+ |--------------------------------------------------------------------------
+ | Multiple files selection
+ |--------------------------------------------------------------------------
+ | The user can delete multiple files, select all files , deselect all files
+ */
'multiple_selection' => true,
/*
- |
- | The user can have a select button that pass a json to external input or pass the first file selected to editor
- | If you use responsivefilemanager tinymce extension can copy into editor multiple object like images, videos, audios, links in the same time
- |
- */
+ |
+ | The user can have a select button that pass a json to external input or pass the first file selected to editor
+ | If you use responsivefilemanager tinymce extension can copy into editor multiple object like images, videos, audios, links in the same time
+ |
+ */
'multiple_selection_action_button' => true,
/*
- |--------------------------------------------------------------------------
- | Access keys
- |--------------------------------------------------------------------------
- |
- | add access keys eg: array('myPrivateKey', 'someoneElseKey');
- | keys should only containt (a-z A-Z 0-9 \ . _ -) characters
- | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this:
- | $username = 'Admin';
- | $salt = 'dsflFWR9u2xQa' (a hard coded string)
- | $akey = md5($username.$salt);
- | DO NOT use 'key' as access key!
- | Keys are CASE SENSITIVE!
- |
- */
+ |--------------------------------------------------------------------------
+ | Access keys
+ |--------------------------------------------------------------------------
+ |
+ | add access keys eg: array('myPrivateKey', 'someoneElseKey');
+ | keys should only containt (a-z A-Z 0-9 \ . _ -) characters
+ | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this:
+ | $username = 'Admin';
+ | $salt = 'dsflFWR9u2xQa' (a hard coded string)
+ | $akey = md5($username.$salt);
+ | DO NOT use 'key' as access key!
+ | Keys are CASE SENSITIVE!
+ |
+ */
'access_keys' => array($privateKey),
@@ -269,51 +276,51 @@ $config = array(
//--------------------------------------------------------------------------------------------------------
/*
- |--------------------------------------------------------------------------
- | Maximum size of all files in source folder
- |--------------------------------------------------------------------------
- |
- | in Megabytes
- |
- */
+ |--------------------------------------------------------------------------
+ | Maximum size of all files in source folder
+ |--------------------------------------------------------------------------
+ |
+ | in Megabytes
+ |
+ */
'MaxSizeTotal' => false,
/*
- |--------------------------------------------------------------------------
- | Maximum upload size
- |--------------------------------------------------------------------------
- |
- | in Megabytes
- |
- */
+ |--------------------------------------------------------------------------
+ | Maximum upload size
+ |--------------------------------------------------------------------------
+ |
+ | in Megabytes
+ |
+ */
'MaxSizeUpload' => 20000,
/*
- |--------------------------------------------------------------------------
- | File and Folder permission
- |--------------------------------------------------------------------------
- |
- */
+ |--------------------------------------------------------------------------
+ | File and Folder permission
+ |--------------------------------------------------------------------------
+ |
+ */
'filePermission' => 0644,
'folderPermission' => 0777,
/*
- |--------------------------------------------------------------------------
- | default language file name
- |--------------------------------------------------------------------------
- */
+ |--------------------------------------------------------------------------
+ | default language file name
+ |--------------------------------------------------------------------------
+ */
'default_language' => 'fr_FR',
/*
- |--------------------------------------------------------------------------
- | Icon theme
- |--------------------------------------------------------------------------
- |
- | Default available: ico and ico_dark
- | Can be set to custom icon inside filemanager/img
- |
- */
+ |--------------------------------------------------------------------------
+ | Icon theme
+ |--------------------------------------------------------------------------
+ |
+ | Default available: ico and ico_dark
+ | Can be set to custom icon inside filemanager/img
+ |
+ */
'icon_theme' => "ico",
@@ -351,12 +358,12 @@ $config = array(
'image_max_height' => 0,
'image_max_mode' => 'auto',
/*
- # $option: 0 / exact = defined size;
- # 1 / portrait = keep aspect set height;
- # 2 / landscape = keep aspect set width;
- # 3 / auto = auto;
- # 4 / crop= resize and crop;
- */
+ # $option: 0 / exact = defined size;
+ # 1 / portrait = keep aspect set height;
+ # 2 / landscape = keep aspect set width;
+ # 3 / auto = auto;
+ # 4 / crop= resize and crop;
+ */
//Automatic resizing //
// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension
@@ -491,13 +498,13 @@ $config = array(
'empty_filename' => false,
/*
- |--------------------------------------------------------------------------
- | accept files without extension
- |--------------------------------------------------------------------------
- |
- | If you want to accept files without extension, remember to add '' extension on allowed extension
- |
- */
+ |--------------------------------------------------------------------------
+ | accept files without extension
+ |--------------------------------------------------------------------------
+ |
+ | If you want to accept files without extension, remember to add '' extension on allowed extension
+ |
+ */
'files_without_extension' => false,
/******************
@@ -618,12 +625,12 @@ $config = array(
'fixed_image_creation_height' => array(480),
//height of image
/*
- # $option: 0 / exact = defined size;
- # 1 / portrait = keep aspect set height;
- # 2 / landscape = keep aspect set width;
- # 3 / auto = auto;
- # 4 / crop= resize and crop;
- */
+ # $option: 0 / exact = defined size;
+ # 1 / portrait = keep aspect set height;
+ # 2 / landscape = keep aspect set width;
+ # 3 / auto = auto;
+ # 4 / crop= resize and crop;
+ */
'fixed_image_creation_option' => array('auto', 'crop'),
//set the type of the crop
@@ -646,12 +653,12 @@ $config = array(
'relative_image_creation_height' => array(200, 300),
//height of image
/*
- # $option: 0 / exact = defined size;
- # 1 / portrait = keep aspect set height;
- # 2 / landscape = keep aspect set width;
- # 3 / auto = auto;
- # 4 / crop= resize and crop;
- */
+ # $option: 0 / exact = defined size;
+ # 1 / portrait = keep aspect set height;
+ # 2 / landscape = keep aspect set width;
+ # 3 / auto = auto;
+ # 4 / crop= resize and crop;
+ */
'relative_image_creation_option' => array('crop', 'crop'),
//set the type of the crop