forked from ZwiiCMS-Team/ZwiiCampus
1.7.00 gestion RFM WIP
This commit is contained in:
parent
6d42f792e4
commit
db0637ca1c
@ -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) {
|
||||
|
@ -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' => [
|
||||
|
@ -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
|
||||
|
@ -93,16 +93,14 @@
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col5">
|
||||
<?php echo template::select('profilEditCoursePath', $module::$sharePath, [
|
||||
<?php var_dump ($this->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'])
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col5">
|
||||
@ -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'])
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
21
core/vendor/filemanager/config/config.php
vendored
21
core/vendor/filemanager/config/config.php
vendored
@ -52,28 +52,35 @@ 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("<h1 style='color: red'>Accès interdit au gestionnaire de fichiers !</h1>");
|
||||
}
|
||||
|
||||
$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("<h1 style='color: red'>Accès interdit au gestionnaire de fichiers !</h1>");
|
||||
}
|
||||
|
||||
$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("<h1 style='color: red'>Le dossier partagé est inexistant, contactez l'administrateur.</h1>");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user