diff --git a/vbcms-admin/backTasks.php b/vbcms-admin/backTasks.php index e51ad4e41d470f734021ea5a819ae71844806b08..411a74da2a62c452a61196afc518ef70c13b938c 100644 --- a/vbcms-admin/backTasks.php +++ b/vbcms-admin/backTasks.php @@ -219,18 +219,40 @@ if (isset($_GET["getNotifications"])) { } else { echo translate('error').': '.translate('thisIsNotJSON'); } -} elseif (isset($_GET["setLocalAccount"])&&!empty($_GET["setLocalAccount"]) && (isset($_POST)&&!empty($_POST)) && verifyUserPermission($_SESSION['user_id'], "vbcms", 'manageUsersSettings')) { - $localAccountExist = $bdd->prepare("SELECT * FROM `vbcms-localAccounts` WHERE userIdAssoc = ?"); - $localAccountExist->execute([$_GET["setLocalAccount"]]); - $localAccountExist = $localAccountExist->fetch(PDO::FETCH_ASSOC); - - if(!empty($localAccountExist)){ +} elseif (isset($_GET["setLocalAccount"]) && (isset($_POST)&&!empty($_POST)) && verifyUserPermission($_SESSION['user_id'], "vbcms", 'manageUsersSettings')) { + if($_GET["setLocalAccount"]!=0 || !empty($_GET["setLocalAccount"])){ + $localAccountExist = $bdd->prepare("SELECT * FROM `vbcms-localAccounts` WHERE userIdAssoc = ?"); + $localAccountExist->execute([$_GET["setLocalAccount"]]); + $localAccountExist = $localAccountExist->fetch(PDO::FETCH_ASSOC); + $accountId = $_GET["setLocalAccount"]; + }else{ + $accountId = $bdd->query("SELECT id FROM `vbcms-users` ORDER BY id DESC LIMIT 1;")->fetchColumn() + 1; + } + + // Si on update un compte alors... + if(isset($localAccountExist) && !empty($localAccountExist)){ $modify = $bdd->prepare("UPDATE `vbcms-localAccounts` SET username = ?, password = ? WHERE userIdAssoc = ?"); - $modify->execute([$_POST['localUserUsername'], password_hash($_POST['localUserPassword1'], PASSWORD_DEFAULT), $_GET["setLocalAccount"]]); + $modify->execute([$_POST['localUserUsername'], password_hash($_POST['localUserPassword1'], PASSWORD_DEFAULT), $accountId]); }else{ - $query = $bdd->prepare('INSERT INTO `vbcms-localAccounts` (`userIdAssoc`, `username`, `password`, `profilePic`) VALUES (?,?,?,?)'); - $query->execute([$_GET["setLocalAccount"], $_POST['localUserUsername'], password_hash($_POST['localUserPassword1'], PASSWORD_DEFAULT), VBcmsGetSetting("websiteUrl")."vbcms-admin/images/misc/programmer.png"]); + // Si on en créé un... + // default profil pic = VBcmsGetSetting("websiteUrl")."vbcms-admin/images/misc/programmer.png" + $query = $bdd->prepare('INSERT INTO `vbcms-localAccounts` (`userIdAssoc`, `username`, `password`) VALUES (?,?,?)'); + $query->execute([$accountId, $_POST['localUserUsername'], password_hash($_POST['localUserPassword1'], PASSWORD_DEFAULT)]); + + $userGroup = $bdd->query("SELECT groupId FROM `vbcms-userGroups` WHERE groupName = 'users'")->fetch(PDO::FETCH_ASSOC); + + $query = $bdd->prepare('INSERT INTO `vbcms-users` (`id`, `auth`, `authId`, `username`, `groupId`) VALUES (NULL,?,?,?,?)'); + $query->execute(["vbcms", $accountId, $_POST['localUserUsername'], $userGroup["groupId"]]); + + // On renseigne les paramètres + $insertSettings = $bdd->prepare("INSERT INTO `vbcms-usersSettings` (`userId`, `name`, `value`) VALUES (?,?,?)"); + $insertSettings->execute([$accountId, 'profilPic', VBcmsGetSetting("websiteUrl")."vbcms-admin/images/misc/programmer.png"]); + $insertSettings = $bdd->prepare("INSERT INTO `vbcms-usersSettings` (`userId`, `name`, `value`) VALUES (?,?,?)"); + $insertSettings->execute([$accountId, 'joinedDate', date("Y-m-d H:i:s")]); + $insertSettings = $bdd->prepare("INSERT INTO `vbcms-usersSettings` (`userId`, `name`, `value`) VALUES (?,?,?)"); + $insertSettings->execute([$accountId, 'language', "FR"]); } + } elseif(isset($_GET)&&!empty($_GET)){ echo "Commande \"".array_key_first($_GET)."(".$_GET[array_key_first($_GET)].")\" non reconnue."; } else {?> diff --git a/vbcms-admin/includes/settings/users.php b/vbcms-admin/includes/settings/users.php index 72aab9ee26af38e408e93e992855adcb1ff7b180..e9d85b02845410a02851591cf9875d3fe2f3621b 100644 --- a/vbcms-admin/includes/settings/users.php +++ b/vbcms-admin/includes/settings/users.php @@ -2,7 +2,7 @@ <div class="flex-grow-1 d-flex flex-column"> <div class="mt-2"> <button class="btn btn-sm btn-brown" data-toggle="modal" data-target="#inviteUserModal"><i class="fas fa-envelope"></i> <?=translate('inviteUser')?></button> - <button class="btn btn-outline-brown btn-sm" data-toggle="modal" data-target="#createUserModal"><i class="fas fa-user-plus"></i> <?=translate('localAccountCreation')?></button> + <button class="btn btn-outline-brown btn-sm" onclick="editLocalAccount()"><i class="fas fa-user-plus"></i> <?=translate('localAccountCreation')?></button> <!--<a href="#" class="btn btn-outline-brown btn-sm"><i class="fas fa-user-plus"></i> <?=translate('localAccountCreation')?></a>--> </div> <?php @@ -152,7 +152,7 @@ <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-brown text-white"> - <h5 id="extensionActivationModalTitle" class="modal-title"><?=translate('modifyLocalAccount')?></h5> + <h5 id="extensionActivationModalTitle" class="modal-title"><?=translate('createLocalAccount')?></h5> <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> @@ -211,15 +211,22 @@ window.addEventListener('load', function() { }, false); })(); -function editLocalAccount(id) { - $.get("<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/backTasks/?getNetIdLocalAccount="+id, function(data) { - var json = JSON.parse(data); - if(!jQuery.isEmptyObject(json)){ - $("#localUserUsername").val(json.username); - } else{ - $("#localUserUsername").val(""); - } - }); +function editLocalAccount(id = 0) { + if(id!=0){ + $.get("<?=VBcmsGetSetting("websiteUrl")?>vbcms-admin/backTasks/?getNetIdLocalAccount="+id, function(data) { + var json = JSON.parse(data); + if(!jQuery.isEmptyObject(json)){ + $("#localUserUsername").val(json.username); + } else{ + $("#localUserUsername").val(""); + } + }); + $("#extensionActivationModalTitle").html("<?=translate('modifyLocalAccount')?>"); + } else { + $("#localUserUsername").val(""); + $("#extensionActivationModalTitle").html("<?=translate('createLocalAccount')?>"); + } + $("#registerBtn").attr("onclick", "sendLocalAccountInfos('"+id+"')"); $('#localAccountCreationModal').modal('show'); } diff --git a/vbcms-content/translations/FR.php b/vbcms-content/translations/FR.php index eefc117b243ced56d1c59634250410af715f1319..691c9adc64eaf037a220f948a84105d1c91d100a 100644 --- a/vbcms-content/translations/FR.php +++ b/vbcms-content/translations/FR.php @@ -84,6 +84,7 @@ $translation["localAccountCreation_yourPasswordIsTooWeak"] = "Ton mot de passe d $translation["whyCreateALocalAccount"] = "Pourquoi créer un compte local?"; $translation["localAccountCreation_error"] = "Erreur lors de la création du compte local. Check les logs pour plus d'infos (ouai j'ai pas fait de vérification ^^')."; $translation["localAccountCreation_success"] = "Compte local créé. 🥳"; +$translation["createLocalAccount"] = "Créer un compte local"; $translation["unknownTranslation"] = "Traduction inconnue"; $translation["createUser"] = "Créer un utilisateur"; $translation["modifyUser"] = "Modifier l'utilisateur";