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_MEMBER = 1;
const GROUP_EDITOR = 2;
const GROUP_ADMIN = 3;
const GROUP_MODERATOR = 3;
const GROUP_ADMIN = 4;
const SIGNATURE_ID = 1;
const SIGNATURE_PSEUDO = 2;
const SIGNATURE_FIRSTLASTNAME = 3;
@ -127,24 +128,28 @@ class common {
self::GROUP_BANNED => 'Banni',
self::GROUP_VISITOR => 'Visiteur',
self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur',
self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur'
];
public static $groupEdits = [
self::GROUP_BANNED => 'Banni',
self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur',
self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur'
];
public static $groupNews = [
self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur',
self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur'
];
public static $groupPublics = [
self::GROUP_VISITOR => 'Visiteur',
self::GROUP_MEMBER => 'Membre',
self::GROUP_EDITOR => 'Éditeur',
self::GROUP_EDITOR => 'Rédacteur',
self::GROUP_MODERATOR => 'Modérateur',
self::GROUP_ADMIN => 'Administrateur'
];
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]);
}
}
@ -2684,6 +2696,7 @@ class layout extends common {
if($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')) {
// Items de gauche
$leftItems = '';
//if($this->getUser('group') >= self::GROUP_MODERATOR) {
if($this->getUser('group') >= self::GROUP_EDITOR) {
$leftItems .= '<li><select id="barSelectPage">';
$leftItems .= '<option value="">Choisissez une page</option>';
@ -2729,7 +2742,9 @@ class layout extends common {
}
$leftItems .= '</optgroup>';
$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(
// Sur un module de page qui autorise le bouton de modification de la page
$this->core->output['showBarEditButton']
@ -2739,15 +2754,20 @@ class layout extends common {
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>';
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 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>';
if($this->getUser('group') >= self::GROUP_MODERATOR) {
$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
$rightItems = '';
// if($this->getUser('group') >= self::GROUP_MODERATOR) {
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>';
}
@ -2807,6 +2827,7 @@ class layout extends common {
$vars .= 'var baseUrlQs = ' . json_encode(helper::baseUrl()) . ';';
if(
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
//AND $this->getUser('group') >= self::GROUP_MODERATOR
AND $this->getUser('group') >= self::GROUP_EDITOR
) {
$vars .= 'var privateKey = ' . json_encode(md5_file(self::DATA_DIR.'core.json')) . ';';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,7 +15,7 @@
class redirection extends common {
public static $actions = [
'config' => self::GROUP_EDITOR,
'config' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR
];
@ -49,7 +49,7 @@ class redirection extends common {
// Message si l'utilisateur peut éditer la page
if(
$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'
) {
// Valeurs en sortie

View File

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