This commit is contained in:
Fred Tempez 2020-10-10 10:54:38 +02:00
parent a056755826
commit f1f5d5414f
12 changed files with 79 additions and 46 deletions

View File

@ -24,7 +24,8 @@ class common {
const GROUP_VISITOR = 0; const GROUP_VISITOR = 0;
const GROUP_MEMBER = 1; const GROUP_MEMBER = 1;
const GROUP_EDITOR = 2; const GROUP_EDITOR = 2;
const GROUP_ADMIN = 3; const GROUP_MODERATOR = 3;
const GROUP_ADMIN = 4;
const SIGNATURE_ID = 1; const SIGNATURE_ID = 1;
const SIGNATURE_PSEUDO = 2; const SIGNATURE_PSEUDO = 2;
const SIGNATURE_FIRSTLASTNAME = 3; const SIGNATURE_FIRSTLASTNAME = 3;
@ -127,24 +128,28 @@ class common {
self::GROUP_BANNED => 'Banni', self::GROUP_BANNED => 'Banni',
self::GROUP_VISITOR => 'Visiteur', self::GROUP_VISITOR => 'Visiteur',
self::GROUP_MEMBER => 'Membre', self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur', self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur' self::GROUP_ADMIN => 'Administrateur'
]; ];
public static $groupEdits = [ public static $groupEdits = [
self::GROUP_BANNED => 'Banni', self::GROUP_BANNED => 'Banni',
self::GROUP_MEMBER => 'Membre', self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur', self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur' self::GROUP_ADMIN => 'Administrateur'
]; ];
public static $groupNews = [ public static $groupNews = [
self::GROUP_MEMBER => 'Membre', self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur', self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur' self::GROUP_ADMIN => 'Administrateur'
]; ];
public static $groupPublics = [ public static $groupPublics = [
self::GROUP_VISITOR => 'Visiteur', self::GROUP_VISITOR => 'Visiteur',
self::GROUP_MEMBER => 'Membre', self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur', self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur' self::GROUP_ADMIN => 'Administrateur'
]; ];
public static $timezone; public static $timezone;
@ -1464,6 +1469,13 @@ class common {
} }
} }
} }
// Actualiser les droits
$users = $this->getdata(['user']);
foreach ($users as $key => $value) {
if ($this->getData(['user',$key,'group']) > 2 ) {
$this->setData(['user',$key,'group', $this->getData(['user',$key,'group']) + 1 ]);
}
}
$this->setData(['core', 'dataVersion', 10400]); $this->setData(['core', 'dataVersion', 10400]);
} }
} }
@ -2684,6 +2696,7 @@ class layout extends common {
if($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')) { if($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')) {
// Items de gauche // Items de gauche
$leftItems = ''; $leftItems = '';
//if($this->getUser('group') >= self::GROUP_MODERATOR) {
if($this->getUser('group') >= self::GROUP_EDITOR) { if($this->getUser('group') >= self::GROUP_EDITOR) {
$leftItems .= '<li><select id="barSelectPage">'; $leftItems .= '<li><select id="barSelectPage">';
$leftItems .= '<option value="">Choisissez une page</option>'; $leftItems .= '<option value="">Choisissez une page</option>';
@ -2729,7 +2742,9 @@ class layout extends common {
} }
$leftItems .= '</optgroup>'; $leftItems .= '</optgroup>';
$leftItems .= '</select></li>'; $leftItems .= '</select></li>';
$leftItems .= '<li><a href="' . helper::baseUrl() . 'page/add" data-tippy-content="Créer une page ou<br>une barre latérale">' . template::ico('plus') . '</a></li>'; if($this->getUser('group') >= self::GROUP_MODERATOR) {
$leftItems .= '<li><a href="' . helper::baseUrl() . 'page/add" data-tippy-content="Créer une page ou<br>une barre latérale">' . template::ico('plus') . '</a></li>';
}
if( if(
// Sur un module de page qui autorise le bouton de modification de la page // Sur un module de page qui autorise le bouton de modification de la page
$this->core->output['showBarEditButton'] $this->core->output['showBarEditButton']
@ -2739,15 +2754,20 @@ class layout extends common {
OR $this->getUrl(0) === '' OR $this->getUrl(0) === ''
) { ) {
$leftItems .= '<li><a href="' . helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '" data-tippy-content="Modifier la page">' . template::ico('pencil') . '</a></li>'; $leftItems .= '<li><a href="' . helper::baseUrl() . 'page/edit/' . $this->getUrl(0) . '" data-tippy-content="Modifier la page">' . template::ico('pencil') . '</a></li>';
if ($this->getData(['page', $this->getUrl(0),'moduleId'])) { if ($this->getData(['page', $this->getUrl(0),'moduleId'])
AND $this->getUser('group') >= self::GROUP_MODERATOR
) {
$leftItems .= '<li><a href="' . helper::baseUrl() . $this->getUrl(0) . '/config' . '" data-tippy-content="Configurer le module">' . template::ico('gear') . '</a></li>'; $leftItems .= '<li><a href="' . helper::baseUrl() . $this->getUrl(0) . '/config' . '" data-tippy-content="Configurer le module">' . template::ico('gear') . '</a></li>';
} }
$leftItems .= '<li><a id="pageDuplicate" href="' . helper::baseUrl() . 'page/duplicate/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'] . '" data-tippy-content="Dupliquer la page">' . template::ico('clone') . '</a></li>'; if($this->getUser('group') >= self::GROUP_MODERATOR) {
$leftItems .= '<li><a id="pageDelete" href="' . helper::baseUrl() . 'page/delete/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'] . '" data-tippy-content="Effacer la page">' . template::ico('trash') . '</a></li>'; $leftItems .= '<li><a id="pageDuplicate" href="' . helper::baseUrl() . 'page/duplicate/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'] . '" data-tippy-content="Dupliquer la page">' . template::ico('clone') . '</a></li>';
$leftItems .= '<li><a id="pageDelete" href="' . helper::baseUrl() . 'page/delete/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'] . '" data-tippy-content="Effacer la page">' . template::ico('trash') . '</a></li>';
}
} }
} }
// Items de droite // Items de droite
$rightItems = ''; $rightItems = '';
// if($this->getUser('group') >= self::GROUP_MODERATOR) {
if($this->getUser('group') >= self::GROUP_EDITOR) { if($this->getUser('group') >= self::GROUP_EDITOR) {
$rightItems .= '<li><a href="' . helper::baseUrl(false) . 'core/vendor/filemanager/dialog.php?type=0&akey=' . md5_file(self::DATA_DIR.'core.json') .'" data-tippy-content="Gérer les fichiers" data-lity>' . template::ico('folder') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl(false) . 'core/vendor/filemanager/dialog.php?type=0&akey=' . md5_file(self::DATA_DIR.'core.json') .'" data-tippy-content="Gérer les fichiers" data-lity>' . template::ico('folder') . '</a></li>';
} }
@ -2807,6 +2827,7 @@ class layout extends common {
$vars .= 'var baseUrlQs = ' . json_encode(helper::baseUrl()) . ';'; $vars .= 'var baseUrlQs = ' . json_encode(helper::baseUrl()) . ';';
if( if(
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
//AND $this->getUser('group') >= self::GROUP_MODERATOR
AND $this->getUser('group') >= self::GROUP_EDITOR AND $this->getUser('group') >= self::GROUP_EDITOR
) { ) {
$vars .= 'var privateKey = ' . json_encode(md5_file(self::DATA_DIR.'core.json')) . ';'; $vars .= 'var privateKey = ' . json_encode(md5_file(self::DATA_DIR.'core.json')) . ';';

View File

@ -17,10 +17,10 @@
class page extends common { class page extends common {
public static $actions = [ public static $actions = [
'add' => self::GROUP_EDITOR, 'add' => self::GROUP_MODERATOR,
'delete' => self::GROUP_EDITOR, 'delete' => self::GROUP_MODERATOR,
'edit' => self::GROUP_EDITOR, 'edit' => self::GROUP_EDITOR,
'duplicate' => self::GROUP_EDITOR 'duplicate' => self::GROUP_MODERATOR
]; ];
public static $pagesNoParentId = [ public static $pagesNoParentId = [
'' => 'Aucune' '' => 'Aucune'

View File

@ -124,7 +124,7 @@ class user extends common {
// L'utilisateur n'existe pas // L'utilisateur n'existe pas
$this->getData(['user', $this->getUrl(2)]) === null $this->getData(['user', $this->getUrl(2)]) === null
// Groupe insuffisant // Groupe insuffisant
AND ($this->getUrl('group') < self::GROUP_EDITOR) AND ($this->getUrl('group') < self::GROUP_MODERATOR)
) { ) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -183,7 +183,7 @@ class user extends common {
AND $this->getUrl('group') <= self::GROUP_VISITOR AND $this->getUrl('group') <= self::GROUP_VISITOR
) )
// Impossible d'éditer un autre utilisateur // Impossible d'éditer un autre utilisateur
OR ($this->getUrl('group') < self::GROUP_EDITOR) OR ($this->getUrl('group') < self::GROUP_MODERATOR)
) )
) { ) {
// Valeurs en sortie // Valeurs en sortie

View File

@ -51,15 +51,21 @@
<li>Accès aux pages privées membres</li> <li>Accès aux pages privées membres</li>
</ul> </ul>
<ul id="userAddGroupDescription<?php echo self::GROUP_EDITOR; ?>" class="userAddGroupDescription displayNone"> <ul id="userAddGroupDescription<?php echo self::GROUP_EDITOR; ?>" class="userAddGroupDescription displayNone">
<li>Édition de pages</li>
<li>Édition des articles de blog</li>
</ul>
<ul id="userAddGroupDescription<?php echo self::GROUP_MODERATOR; ?>" class="userAddGroupDescription displayNone">
<li>Accès aux pages privées membres et éditeurs</li> <li>Accès aux pages privées membres et éditeurs</li>
<li>Ajout / Édition / Suppression de pages</li> <li>Ajout / Édition / Suppression de pages</li>
<li>Ajout / Édition / Suppression de fichiers</li> <li>Ajout / Édition / Suppression de fichiers</li>
<li>Gestion de tous les modules</li>
</ul> </ul>
<ul id="userAddGroupDescription<?php echo self::GROUP_ADMIN; ?>" class="userAddGroupDescription displayNone"> <ul id="userAddGroupDescription<?php echo self::GROUP_ADMIN; ?>" class="userAddGroupDescription displayNone">
<li>Accès à toutes les pages privées</li> <li>Accès à toutes les pages privées</li>
<li>Ajout / Édition / Suppression de pages</li> <li>Ajout / Édition / Suppression de pages</li>
<li>Ajout / Édition / Suppression de fichiers</li> <li>Ajout / Édition / Suppression de fichiers</li>
<li>Ajout / Édition / Suppression d'utilisateurs</li> <li>Ajout / Édition / Suppression d'utilisateurs</li>
<li>Gestion de tous les modules</li>
<li>Configuration du site</li> <li>Configuration du site</li>
<li>Personnalisation du thème</li> <li>Personnalisation du thème</li>
</ul> </ul>

View File

@ -69,15 +69,21 @@
<li>Accès aux pages privées membres</li> <li>Accès aux pages privées membres</li>
</ul> </ul>
<ul id="userEditGroupDescription<?php echo self::GROUP_EDITOR; ?>" class="userEditGroupDescription displayNone"> <ul id="userEditGroupDescription<?php echo self::GROUP_EDITOR; ?>" class="userEditGroupDescription displayNone">
<li>Édition de pages</li>
<li>Édition des articles de blog</li>
</ul>
<ul id="userEditGroupDescription<?php echo self::GROUP_MODERATOR; ?>" class="userEditGroupDescription displayNone">
<li>Accès aux pages privées membres et éditeurs</li> <li>Accès aux pages privées membres et éditeurs</li>
<li>Ajout / Édition / Suppression de pages</li> <li>Ajout / Édition / Suppression de pages</li>
<li>Ajout / Édition / Suppression de fichiers</li> <li>Ajout / Édition / Suppression de fichiers</li>
<li>Gestion de tous les modules</li>
</ul> </ul>
<ul id="userEditGroupDescription<?php echo self::GROUP_ADMIN; ?>" class="userEditGroupDescription displayNone"> <ul id="userEditGroupDescription<?php echo self::GROUP_ADMIN; ?>" class="userEditGroupDescription displayNone">
<li>Accès à toutes les pages privées</li> <li>Accès à toutes les pages privées</li>
<li>Ajout / Édition / Suppression de pages</li> <li>Ajout / Édition / Suppression de pages</li>
<li>Ajout / Édition / Suppression de fichiers</li> <li>Ajout / Édition / Suppression de fichiers</li>
<li>Ajout / Édition / Suppression d'utilisateurs</li> <li>Ajout / Édition / Suppression d'utilisateurs</li>
<li>Gestion de tous les modules</li>
<li>Configuration du site</li> <li>Configuration du site</li>
<li>Personnalisation du thème</li> <li>Personnalisation du thème</li>
</ul> </ul>

View File

@ -21,14 +21,14 @@ class blog extends common {
const EDIT_ADMIN = '03'; // Groupe des admin const EDIT_ADMIN = '03'; // Groupe des admin
public static $actions = [ public static $actions = [
'add' => self::GROUP_EDITOR, 'add' => self::GROUP_MODERATOR,
'comment' => self::GROUP_EDITOR, 'comment' => self::GROUP_MODERATOR,
'commentApprove' => self::GROUP_EDITOR, 'commentApprove' => self::GROUP_MODERATOR,
'commentDelete' => self::GROUP_EDITOR, 'commentDelete' => self::GROUP_MODERATOR,
'commentDeleteAll' => self::GROUP_EDITOR, 'commentDeleteAll' => self::GROUP_MODERATOR,
'config' => self::GROUP_EDITOR, 'config' => self::GROUP_MODERATOR,
'delete' => self::GROUP_EDITOR, 'delete' => self::GROUP_MODERATOR,
'edit' => self::GROUP_EDITOR, 'edit' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR 'index' => self::GROUP_VISITOR
]; ];
@ -41,7 +41,7 @@ class blog extends common {
public static $editCommentSignature = ''; public static $editCommentSignature = '';
public static $comments = []; public static $comments = [];
public static $nbCommentsApproved = 0; public static $nbCommentsApproved = 0;
public static $commentsDelete; public static $commentsDelete;
@ -471,9 +471,9 @@ class blog extends common {
ksort(self::$users); ksort(self::$users);
foreach(self::$users as $userId => &$userFirstname) { foreach(self::$users as $userId => &$userFirstname) {
// Les membres ne sont pas éditeurs, les exclure de la liste // Les membres ne sont pas éditeurs, les exclure de la liste
if ( $this->getData(['user', $userId, 'group']) < self::GROUP_EDITOR) { if ( $this->getData(['user', $userId, 'group']) < self::GROUP_MODERATOR) {
unset(self::$users[$userId]); unset(self::$users[$userId]);
} }
$userFirstname = $userFirstname . ' ' . $this->getData(['user', $userId, 'lastname']) . ' (' . self::$groupEdits[$this->getData(['user', $userId, 'group'])] . ')'; $userFirstname = $userFirstname . ' ' . $this->getData(['user', $userId, 'lastname']) . ' (' . self::$groupEdits[$this->getData(['user', $userId, 'group'])] . ')';
} }
unset($userFirstname); unset($userFirstname);

View File

@ -8,7 +8,7 @@
</div> </div>
</div> </div>
<?php if( <?php if(
$this->getUser('group') >= self::GROUP_ADMIN $this->getUser('group') >= self::GROUP_MODERATOR
AND $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') AND $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
): ?> ): ?>
<div class="col2"> <div class="col2">

View File

@ -17,13 +17,13 @@
class form extends common { class form extends common {
public static $actions = [ public static $actions = [
'config' => self::GROUP_EDITOR, 'config' => self::GROUP_MODERATOR,
'data' => self::GROUP_EDITOR, 'data' => self::GROUP_MODERATOR,
'delete' => self::GROUP_EDITOR, 'delete' => self::GROUP_MODERATOR,
'deleteall' => self::GROUP_EDITOR, 'deleteall' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR, 'index' => self::GROUP_VISITOR,
'export2csv' => self::GROUP_EDITOR, 'export2csv' => self::GROUP_MODERATOR,
'output2csv' => self::GROUP_EDITOR 'output2csv' => self::GROUP_MODERATOR
]; ];
public static $data = []; public static $data = [];

View File

@ -36,13 +36,13 @@ class gallery extends common {
public static $thumbs = []; public static $thumbs = [];
public static $actions = [ public static $actions = [
'config' => self::GROUP_EDITOR, 'config' => self::GROUP_MODERATOR,
'delete' => self::GROUP_EDITOR, 'delete' => self::GROUP_MODERATOR,
'dirs' => self::GROUP_EDITOR, 'dirs' => self::GROUP_MODERATOR,
'sortGalleries' => self::GROUP_EDITOR, 'sortGalleries' => self::GROUP_MODERATOR,
'sortPictures' => self::GROUP_EDITOR, 'sortPictures' => self::GROUP_MODERATOR,
'edit' => self::GROUP_EDITOR, 'edit' => self::GROUP_MODERATOR,
'theme' => self::GROUP_EDITOR, 'theme' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR 'index' => self::GROUP_VISITOR
]; ];

View File

@ -15,10 +15,10 @@
class news extends common { class news extends common {
public static $actions = [ public static $actions = [
'add' => self::GROUP_EDITOR, 'add' => self::GROUP_MODERATOR,
'config' => self::GROUP_EDITOR, 'config' => self::GROUP_MODERATOR,
'delete' => self::GROUP_EDITOR, 'delete' => self::GROUP_MODERATOR,
'edit' => self::GROUP_EDITOR, 'edit' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR 'index' => self::GROUP_VISITOR
]; ];

View File

@ -15,7 +15,7 @@
class redirection extends common { class redirection extends common {
public static $actions = [ public static $actions = [
'config' => self::GROUP_EDITOR, 'config' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR 'index' => self::GROUP_VISITOR
]; ];
@ -49,7 +49,7 @@ class redirection extends common {
// Message si l'utilisateur peut éditer la page // Message si l'utilisateur peut éditer la page
if( if(
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND $this->getUser('group') >= self::GROUP_EDITOR AND $this->getUser('group') >= self::GROUP_MODERATOR
AND $this->getUrl(1) !== 'force' AND $this->getUrl(1) !== 'force'
) { ) {
// Valeurs en sortie // Valeurs en sortie

View File

@ -20,7 +20,7 @@ class search extends common {
public static $actions = [ public static $actions = [
'index' => self::GROUP_VISITOR, 'index' => self::GROUP_VISITOR,
'config' => self::GROUP_EDITOR 'config' => self::GROUP_MODERATOR
]; ];
// Variables pour l'affichage des résultats // Variables pour l'affichage des résultats