Skip to content
Snippets Groups Projects
Commit 0ccd9b85 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

17H59 - Upt settings pages + nv sys groupes

parent d5fae7e8
No related branches found
No related tags found
No related merge requests found
......@@ -204,3 +204,11 @@ body {
.modal-header{
padding: .5rem 1rem;
}
.input-group-btn .btn-default{
background-color: #e9ecef;
border: 1px solid #ced4da;
}
.input-group-btn .btn-default, .color-dropdown{
border-top-left-radius: 0!important;
border-bottom-left-radius: 0!important;
}
\ No newline at end of file
......@@ -662,18 +662,21 @@ header .menu-item{
.settingsContainer .tabs{
border-bottom: 1px solid #dadada;
}
.settingsContainer .tabs ul{
display:flex;
list-style-type:none;
margin: 0;
padding: 0;
overflow-x: auto;
}
.settingsContainer .tabs ul li{
margin-left: .5em;
padding: .25em;
margin: 1px 1px 0 1px;
float: left;
}
.settingsContainer .tabs ul li:hover{
margin: 0;
border-top: 1px solid var(--mainBrown);
border-left: 1px solid var(--mainBrown);
border-right: 1px solid var(--mainBrown);
......@@ -695,6 +698,7 @@ header .menu-item{
border-right: 1px solid var(--mainBrown);
border-top-left-radius: 5px;
border-top-right-radius: 5px;
margin: 0;
}
.settingsContainer .tabs ul .active a{
color:white;
......
......@@ -22,7 +22,34 @@ function getSettingsHTML($params){
?>
<div class="d-flex">
<div class="flex-grow-1" >
<h5>Paramètres de mises à jour</h5>
<div class="tabs">
<ul id="tabVBcmsSettingsLinks">
<li id="tab-general">
<a href="#" onclick="changeTab('general')">Paramètres généraux</a>
</li>
<li id="tab-users">
<a href="#" onclick="changeTab('users')">Utilisateurs</a>
</li>
<li id="tab-usersGroups">
<a href="#" onclick="changeTab('usersGroups')">Groupes d'utilisateurs</a>
</li>
<li id="tab-permissions">
<a href="#" onclick="changeTab('permissions')">Permissions</a>
</li>
<li id="tab-extAndWs">
<a href="#" onclick="changeTab('extAndWs')">Extensions & Worshop</a>
</li>
<!-- Modèle
<li id="tab-nomTab">
<a href="#" class="active">Onglet</a>
</li>
-->
</ul>
</div>
<?php
if(!isset($params)||empty($params)||$params=="general"){
?>
<h5 class="mt-2">Paramètres de mises à jour</h5>
<form id="form" method="post">
<div class="row">
<div class="col-sm">
......@@ -52,7 +79,7 @@ function getSettingsHTML($params){
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" name="autoInstallCriticalUpdates" <?=$autoInstallCriticalUpdates?>>
<label class="form-check-label text-danger" data-toggle="tooltip" data-placement="top" title="⚠️Désactiver cette option n'est pas recommandé!⚠️"><i class="fas fa-exclamation-triangle"></i> <strong>Installation automatique de mises à jour critiques</strong></label>
<label class="form-check-label text-danger" data-toggle="tooltip" data-placement="top" title="⚠️Désactiver cette option n'est pas recommandé!⚠️"><i class="fas fa-exclamation-triangle"></i> <strong>Installation automatique des mises à jour critiques</strong></label>
</div>
</div>
......@@ -119,9 +146,46 @@ function getSettingsHTML($params){
<p class="text-danger"><b>Il n'est pas pas recommandé de désactiver cette fonctionnalité, VBcms n'est pas encore à un stade de développement mature.</b></p>
</div>
</div>
<?php } ?>
</div>
<script type="text/javascript">
// S'éxecute une fois la page chargée
$( document ).ready(function() {
// On va récupérer l'url et ses paramètres
let url = new URL(window.location.href);
let search_params = url.searchParams;
// On récupère les infos de la requête
var extSettingsQuery = JSON.parse(search_params.get('p'));
if(extSettingsQuery.parameters == ""){
changeTab("general");
} else {
// Et on surligne le lien qui correspond à l'extension souhaitée
$("#tab-"+extSettingsQuery.parameters).addClass("active");
}
});
function changeTab(pageName){
// Cette fonction permet de charger une autre page
// On va récupérer l'url et ses paramètres
let url = new URL(window.location.href);
let search_params = url.searchParams;
// On recréé la requête
let array = {};
array.moduleName="VBcms";
array.parameters=pageName;
// Et on modifie le paramètre p
search_params.set('p', JSON.stringify(array));
let newUrl = url.toString();
window.history.replaceState({}, '', newUrl);
// Enfin on lance la fonction qui affiche la page
setSettingsContent();
}
function saveChanges(){
$.post( "<?=$GLOBALS['websiteUrl']?>vbcms-admin/backTasks?saveSettings", $( "#form" ).serialize() )
.done(function( data ) {
......
......@@ -109,7 +109,7 @@ if ($isUpToDate == 1) {
<div class="mt-3">
<h3>Merci de participer aux tests!</h3>
<p>Salut et merci d'avoir accepté de participer aux tests de pré-sortie. Tu es là sur une version très primaire de ce que sera VBcms 2.0 à la fin, et comme tu l'as peut-être déjà remarqué, il n'y a pas grand chose de terminé.</p><br>
<?php print_r($_SESSION); ?>
</div>
......
......@@ -39,7 +39,7 @@ foreach ($activatedExtensions as $activatedExtension){
<div class="tabs">
<ul id="tabExtSettingsLinks">
<li id="ext-VBcms">
<a href="#" onclick="change('VBcms')">Paramètres généraux</a>
<a href="#" onclick="change('VBcms')">Paramètres de VBcms</a>
</li>
<?php
foreach ($activatedExtensions as $activatedExtension){
......
......@@ -8,8 +8,8 @@ if (!isset($_SESSION["user_id"])) { // Si l'utilisateur n'est pas connecté
header("Location: https://vbcms.net/manager/login?from=".urlencode("$http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));
}
} else {
// On va vérifier qu'il a un rôle
if (!in_array($_SESSION["user_role"], ["owner", "admin", "moderator"])){
// On va vérifier qu'il a accès au panel admin
if ($_SESSION['accessAdmin']!= 1){
if ($_SERVER['HTTP_HOST'] != "vbcms.net") {
session_destroy(); // On détruit la session
}
......
......@@ -11,13 +11,44 @@ if (isset($_GET["session"]) && !empty($_GET["session"])){
$sessionData = json_decode($sessionJson, true);
if (isset($sessionData) && !isset($sessionData['error'])) {
if ($sessionData["user_id"] ==0) {
//Connexion par vbcms.net
$_SESSION["user_id"] = 0;
$_SESSION["user_role"] = "owner";
}else{
// On va rechercher dans la liste des utilisateurs si cet user est présent ou non
$userExistInDB = $bdd->prepare("SELECT * FROM `vbcms-users` WHERE netId=?");
$userExistInDB->execute([$sessionData["user_id"]]);
$userExistInDB = $userExistInDB->fetch(PDO::FETCH_ASSOC);
if(empty($userExistInDB)){
// On va l'insérer
if($sessionData["user_role"]=="owner")
$userGroupID = $bdd->query("SELECT groupId FROM `vbcms-userGroups` WHERE groupName = 'superadmins'")->fetchColumn();
elseif($sessionData["user_role"]=="admin")
$userGroupID = $bdd->query("SELECT groupId FROM `vbcms-userGroups` WHERE groupName = 'admins'")->fetchColumn();
else
$userGroupID = $bdd->query("SELECT groupId FROM `vbcms-userGroups` WHERE groupName = 'users'")->fetchColumn();
$userExistInDB = $bdd->prepare("INSERT INTO `vbcms-users` (`netId`, `username`, `localLanguage`, `localJoinedDate`, `groupId`) VALUES (?,?,?,?,?)");
$userExistInDB->execute([$sessionData["user_id"], $sessionData["user_username"], $sessionData["language"], date("Y-m-d H:i:s"), $userGroupID]);
// Maintenant on va revérifier
$userExistInDB = $bdd->prepare("SELECT * FROM `vbcms-users` WHERE netId=?");
$userExistInDB->execute([$sessionData["user_id"]]);
$userExistInDB = $userExistInDB->fetch(PDO::FETCH_ASSOC);
}
// On va chercher le groupe auquel il appartient
$userGroup = $bdd->prepare("SELECT * FROM `vbcms-userGroups` WHERE groupId=?");
$userGroup->execute([$userExistInDB["groupId"]]);
$userGroup = $userGroup->fetch(PDO::FETCH_ASSOC);
if(empty($userGroup)){
// il sera un client si le groupe n'existe pas/plus
$userGroup = $bdd->query("SELECT groupId FROM `vbcms-userGroups` WHERE groupName = 'users'")->fetch(PDO::FETCH_ASSOC);
}
// On va appliquer les variables session
$_SESSION['groupName'] = $userGroup['groupName'];
$_SESSION['accessAdmin'] = $userGroup['accessAdmin'];
foreach ($sessionData as $key => $value) {
$_SESSION[$key] = $value;
if($key != "user_role") $_SESSION[$key] = $value; // La gestion par les roles de .net n'est plus supporté, le nouveau système de groupe l'a remplacé
}
parse_str($url["query"], $newUrl); // Puis ses paramètres
......@@ -26,7 +57,6 @@ if (isset($_GET["session"]) && !empty($_GET["session"])){
if(!empty($newUrl)) $newUrl = "?".$newUrl;
header("Location: ".$url["scheme"]."://".$url["host"].$url["path"]."$newUrl"); // Et je renvoie vers la nouvelle url
}
} elseif(isset($sessionData) && isset($sessionData['error'])){
header("Location: https://vbcms.net/manager/login?error=".urlencode($sessionData['error'])); // On renvoie l'utilisateur vers la page de connexion avec un msg d'erreur
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment