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