Permissions du groupe sur RFM

This commit is contained in:
Fred Tempez 2023-03-17 15:55:15 +01:00
parent abcf4c3a70
commit 3da3bf63fc
4 changed files with 363 additions and 324 deletions

View File

@ -335,32 +335,93 @@ class init extends common
'blacklist' => [],
'language'=> [],
'group' => [
"-1" => [
'-1' => [
'name' => 'Banni',
'readonly' => true,
'comment' => 'Accès désactivé'
],
"0" => [
'0' => [
'name' => 'Visiteur',
'readonly' => true,
'comment' => 'Accède au site'
],
"1" => [
'1' => [
'name' => 'Membre',
'readonly' => true,
'comment' => 'Accède aux pages réservées'
'comment' => 'Accède aux pages réservées et à un dossier partagé',
'path' => '/site/file/source/partage/',
'file' => [
'download' => false,
'edit' => false,
'create' => false,
'rename' => false,
'upload' => false,
'delete' => false,
'preview' => false,
'duplicate' => false,
'extract' => false,
'copycut' => false,
'permission' => false
],
"2" => [
'folder' => [
'create' => false,
'delete' => false,
'rename' => false,
'copycut' => false,
'permission' => false
]
],
'2' => [
'name' => 'Editeur',
'readonly' => false,
'comment' => 'Edition des pages',
'file' => [],
'folder' => []
'path' => '/site/file/source/',
'file' => [
'download' => true,
'edit' => true,
'create' => true,
'rename' => true,
'upload' => true,
'delete' => false,
'preview' => true,
'duplicate' => false,
'extract' => false,
'copycut' => false,
'permission' => false
],
"99" => [
'folder' => [
'create' => true,
'delete' => true,
'rename' => true,
'copycut' => false,
'permission' => false
]
],
'99' => [
'name' => 'Administrateur',
'readonly' => true,
'comment' => 'Contrôle total'
'comment' => 'Contrôle total',
'path' => '/site/file/source/',
'file' => [
'download' => true,
'edit' => true,
'create' => true,
'rename' => true,
'upload' => true,
'delete' => true,
'preview' => true,
'duplicate' => true,
'extract' => true,
'copycut' => true,
'permission' => true
],
'folder' => [
'create' => true,
'delete' => true,
'rename' => true,
'copycut' => true,
'permission' => false
]
]
],
];
@ -884,7 +945,6 @@ class init extends common
'picturePosition' => 'left',
'hidePicture' => false,
'pictureSize' => 20,
'picturePosition' => 'left',
'publishedOn' => 1548790902,
'state' => true,
'title' => 'Mon premier article',
@ -904,7 +964,6 @@ class init extends common
'hidePicture' => false,
'picturePosition' => 'right',
'pictureSize' => 40,
'picturePosition' => 'right',
'publishedOn' => 1550432502,
'state' => true,
'title' => 'Mon deuxième article',
@ -924,7 +983,6 @@ class init extends common
'hidePicture' => false,
'picturePosition' => 'left',
'pictureSize' => 100,
'picturePosition' => 'left',
'publishedOn' => 1550864502,
'state' => true,
'title' => 'Mon troisième article',

View File

@ -457,10 +457,10 @@ class user extends common
// Soumission du formulaire
if ($this->isPost()) {
$group = $this->getUrl(2);
var_dump( $group );
die();
$this->setData(['group',
$group, [
$this->setData([
'group',
$group,
[
'name' => $this->getData(['group', $group, 'name']),
'readonly' => $this->getData(['group', $group, 'readonly']),
'comment' => $this->getData(['group', $group, 'comment']),
@ -486,6 +486,12 @@ class user extends common
]
]
]);
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'user/group',
'notification' => helper::translate('Modifications enregistrées'),
'state' => true
]);
}
// Valeurs en sortie

View File

@ -94,27 +94,27 @@
<div class="row">
<div class="col2">
<?php echo template::checkbox('groupEditFolderCreate', true, 'Création', [
'checked' => $this->getData(['group', $this->getUrl(2), 'file', 'create'])
'checked' => $this->getData(['group', $this->getUrl(2), 'folder', 'create'])
]); ?>
</div>
<div class="col2">
<?php echo template::checkbox('groupEditFolderDelete', true, 'Effacement', [
'checked' => $this->getData(['group', $this->getUrl(2), 'file', 'delete'])
'checked' => $this->getData(['group', $this->getUrl(2), 'folder', 'delete'])
]); ?>
</div>
<div class="col2">
<?php echo template::checkbox('groupEditFolderRename', true, 'Nommage', [
'checked' => $this->getData(['group', $this->getUrl(2), 'file', 'rename'])
'checked' => $this->getData(['group', $this->getUrl(2), 'folder', 'rename'])
]); ?>
</div>
<div class="col2">
<?php echo template::checkbox('groupEditFolderCopycut', true, 'Coupé collé', [
'checked' => $this->getData(['group', $this->getUrl(2), 'file', 'copycut'])
'checked' => $this->getData(['group', $this->getUrl(2), 'folder', 'copycut'])
]); ?>
</div>
<div class="col2">
<?php echo template::checkbox('groupEditFolderPermission', true, 'Permissions', [
'checked' => $this->getData(['group', $this->getUrl(2), 'file', 'permission'])
'checked' => $this->getData(['group', $this->getUrl(2), 'folder', 'permission'])
]); ?>
</div>
</div>

View File

@ -1,6 +1,7 @@
<?php
$version = "9.14.0";
if (session_id() == '') session_start();
if (session_id() == '')
session_start();
mb_internal_encoding('UTF-8');
mb_http_output();
@ -18,72 +19,17 @@ setlocale(LC_CTYPE, $lang);
/* Lecture du groupe de l'utilisateur connecté pour attribuer les droits et les dossiers */
$userId = $_COOKIE['ZWII_USER_ID'];
$tab = json_decode(file_get_contents('../../../site/data/user.json'), true);
$group = $tab['user'][$userId]['group'];
$uploadDir = '/site/file/source/';
$currentPath = '../../../site/file/source/';
switch ($group) {
case 3:
// Administrateur, droits maximum
$deleteFiles = true;
$createFolders = true;
$deleteFolders = true;
$uploadFiles = true;
$renameFiles = true;
$renameFolders = true;
$duplicateFiles = true;
$extractFiles = true;
$copycutFiles = true;
$copycutDirs = true;
$chmodFiles = true;
$chmodDirs = true;
$previewtextFiles = true;
$edittextFiles = true;
$createtextFiles = true;
$downloadFiles = true;
break;
case 2:
// Modérateur éditeur
$deleteFiles = true;
$createFolders = false;
$deleteFolders = false;
$uploadFiles = true;
$renameFiles = true;
$renameFolders = false;
$duplicateFiles = true;
$extractFiles = true;
$copycutFiles = true;
$copycutDirs = false;
$chmodFiles = false;
$chmodDirs = false;
$previewtextFiles = true;
$edittextFiles = true;
$createtextFiles = true;
$downloadFiles = true;
break;
default:
// Membre avec droits d'upload / download
$uploadDir = '/site/file/source/partage/';
$currentPath = '../../../site/file/source/partage/';
if(!is_dir('../../../site/file/source/partage')) mkdir ('../../../site/file/source/partage');
$deleteFiles = false;
$createFolders = false;
$deleteFolders = false;
$uploadFiles = true;
$renameFiles = false;
$renameFolders = false;
$duplicateFiles = false;
$extractFiles = false;
$copycutFiles = true;
$copycutDirs = false;
$chmodFiles = false;
$chmodDirs = false;
$previewtextFiles = false;
$edittextFiles = false;
$createtextFiles = false;
$downloadFiles = true;
break;
}
$u = json_decode(file_get_contents('../../../site/data/user.json'), true);
$g = json_decode(file_get_contents('../../../site/data/group.json'), true);
$group = $u['user'][$userId]['group'];
$file = $g['group'][$group]['file'];
$folder = $g['group'][$group]['folder'];
$uploadDir = $g['group'][$group]['path'];
$currentPath = '../../..' . $uploadDir;
if (!is_dir($currentPath ))
mkdir($currentPath );
/* Fin lecture du groupe de l'utilisateur connecté pour attribuer les droits et les dossiers */
@ -206,7 +152,8 @@ $config = array(
| upload dir will be ftp_base_folder + upload_dir so without final /
|
*/
'ftp_host' => false, //put the FTP host
'ftp_host' => false,
//put the FTP host
'ftp_user' => "user",
'ftp_pass' => "pass",
'ftp_base_folder' => "base_folder",
@ -364,7 +311,8 @@ $config = array(
'image_resizing' => false,
'image_resizing_width' => 0,
'image_resizing_height' => 0,
'image_resizing_mode' => 'auto', // same as $image_max_mode
'image_resizing_mode' => 'auto',
// same as $image_max_mode
'image_resizing_override' => false,
// If set to TRUE then you can specify bigger images than $image_max_width & height otherwise if image_resizing is
// bigger than $image_max_width or height then it will be converted to those values
@ -411,22 +359,30 @@ $config = array(
//Permissions configuration
//******************
'delete_files' => $deleteFiles,
'create_folders' => $createFolders,
'delete_folders' => $deleteFolders,
'upload_files' => $uploadFiles,
'rename_files' => $renameFiles,
'rename_folders' => $renameFolders,
'duplicate_files' => $duplicateFiles,
'extract_files' => $extractFiles,
'copy_cut_files' => $copycutFiles, // for copy/cut files
'copy_cut_dirs' => $copycutDirs, // for copy/cut directories
'chmod_files' => $chmodFiles, // change file permissions
'chmod_dirs' => $chmodDirs, // change folder permissions
'preview_text_files' => $previewtextFiles, // eg.: txt, log etc.
'edit_text_files' => $edittextFiles, // eg.: txt, log etc.
'create_text_files' => $createtextFiles, // only create files with exts. defined in $config['editable_text_file_exts']
'download_files' => $downloadFiles, // allow download files or just preview
'delete_files' => $file['delete'],
'create_folders' => $folder['create'],
'delete_folders' => $folder['delete'],
'upload_files' => $file['upload'],
'rename_files' => $file['rename'],
'rename_folders' => $folder['create'],
'duplicate_files' => $file['duplicate'],
'extract_files' => $file['extract'],
'copy_cut_files' => $file['copycut'],
// for copy/cut files
'copy_cut_dirs' => $folder['copycut'],
// for copy/cut directories
'chmod_files' => $file['permission'],
// change file permissions
'chmod_dirs' => $folder['copycut'],
// change folder permissions
'preview_text_files' => $file['preview'],
// eg.: txt, log etc.
'edit_text_files' => $file['edit'],
// eg.: txt, log etc.
'create_text_files' => $file['extract'],
// only create files with exts. defined in $config['editable_text_file_exts']
'download_files' => $file['download'],
// allow download files or just preview
// you can preview these type of files if $preview_text_files is true
'previewable_text_file_exts' => array("bsh", "c", "css", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml", "xsl", 'txt', 'log', 'gpx', 'kml', ''),
@ -456,11 +412,16 @@ $config = array(
//**********************
//Allowed extensions (lowercase insert)
//**********************
'ext_img' => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff','svg', 'ico', 'webp', 'avif' ), //Images
'ext_file' => array( 'doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz','dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm', 'ics', 'gpx', 'kml', ''), //Files
'ext_video' => array( 'mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', 'flv', 'webm' ), //Video
'ext_music' => array( 'mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav' ), //Audio
'ext_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg', 'woff' ), //Archives et polices de caractères
'ext_img' => array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg', 'ico', 'webp', 'avif'),
//Images
'ext_file' => array('doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz', 'dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm', 'ics', 'gpx', 'kml', ''),
//Files
'ext_video' => array('mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', 'flv', 'webm'),
//Video
'ext_music' => array('mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'),
//Audio
'ext_misc' => array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg', 'woff'),
//Archives et polices de caractères
//*********************
@ -588,12 +549,18 @@ $config = array(
// path_from_filemanager/test/test1/
// PS if there isn't write permission in your destination folder you must set it
//
'fixed_image_creation' => true, //activate or not the creation of one or more image resized with fixed path from filemanager folder
'fixed_path_from_filemanager' => array( '../../../site/file/thumb/' ), //fixed path of the image folder from the current position on upload folder
'fixed_image_creation_name_to_prepend' => array( 'mini_' ), //name to prepend on filename
'fixed_image_creation_to_append' => array( '' ), //name to appendon filename
'fixed_image_creation_width' => array( 640 ), //width of image
'fixed_image_creation_height' => array( 480 ), //height of image
'fixed_image_creation' => true,
//activate or not the creation of one or more image resized with fixed path from filemanager folder
'fixed_path_from_filemanager' => array('../../../site/file/thumb/'),
//fixed path of the image folder from the current position on upload folder
'fixed_image_creation_name_to_prepend' => array('mini_'),
//name to prepend on filename
'fixed_image_creation_to_append' => array(''),
//name to appendon filename
'fixed_image_creation_width' => array(640),
//width of image
'fixed_image_creation_height' => array(480),
//height of image
/*
# $option: 0 / exact = defined size;
# 1 / portrait = keep aspect set height;
@ -601,7 +568,8 @@ $config = array(
# 3 / auto = auto;
# 4 / crop= resize and crop;
*/
'fixed_image_creation_option' => array('auto', 'crop'), //set the type of the crop
'fixed_image_creation_option' => array('auto', 'crop'),
//set the type of the crop
// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode)
@ -609,12 +577,18 @@ $config = array(
// just simply add a value in the array
// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here
//
'relative_image_creation' => false, //activate or not the creation of one or more image resized with relative path from upload folder
'relative_path_from_current_pos' => array( './', './' ), //relative path of the image folder from the current position on upload folder
'relative_image_creation_name_to_prepend' => array( '', '' ), //name to prepend on filename
'relative_image_creation_name_to_append' => array( '_thumb', '_thumb1' ), //name to append on filename
'relative_image_creation_width' => array( 300, 400 ), //width of image
'relative_image_creation_height' => array( 200, 300 ), //height of image
'relative_image_creation' => false,
//activate or not the creation of one or more image resized with relative path from upload folder
'relative_path_from_current_pos' => array('./', './'),
//relative path of the image folder from the current position on upload folder
'relative_image_creation_name_to_prepend' => array('', ''),
//name to prepend on filename
'relative_image_creation_name_to_append' => array('_thumb', '_thumb1'),
//name to append on filename
'relative_image_creation_width' => array(300, 400),
//width of image
'relative_image_creation_height' => array(200, 300),
//height of image
/*
# $option: 0 / exact = defined size;
# 1 / portrait = keep aspect set height;
@ -622,7 +596,8 @@ $config = array(
# 3 / auto = auto;
# 4 / crop= resize and crop;
*/
'relative_image_creation_option' => array( 'crop', 'crop' ), //set the type of the crop
'relative_image_creation_option' => array('crop', 'crop'),
//set the type of the crop
// Remember text filter after close filemanager for future session
'remember_text_filter' => false,