Je viens d’installer Dolibarr 20.0.0 sur le serveur o2switch de notre association. L’installation c’est bien déroulé, mais au moment de me connecter avec le compte admin ça me dit : Identifiant ou mot de passe incorrect.
Or, ils sont bons les deux (mot de passe créé et sauvegardé avec KeePass). J’ai quand même essayé en modifiant le mot de passe dans la base de donnée (table user, puis ligne pass_crypted), mais c’est pareil. Je ne peux pas faire de mot de passe perdu puisque a la création du compte admin ça ne demande pas de mail.
Qu’est-ce que tu entends par faire du php ? sinon je peux mettre en place en local une installation. J’utilise Laragon pour faire des sites. Je peux aussi faire une installation distante juste pour du test.
Je précise que même si je fais des sites (sous Joomla) je ne suis pas calé en php .
Pour ma part, je dois me plonger d’ici peu sur l’authentification pour comprendre comment ça marche car j’ai un besoin d’ajouter en ligne de commande un admin secondaire et j’ai eu du mal à savoir quoi mettre dans les champs pass* pour que ça marche.
Si je comprends quelque chose, j’en ferai part
Mais mettre un mot de passe en clair dans le champ « pass » fonctionne le temps de changer le mot de passe. Mais aussi il faut que le champ statut soit à 1.
@ksar a à priori donné la bonne réponse que je ne connaissais pas.
Sinon mon approche était la suivante :
Effectivement, comme dit @libremaster , le nom des tables est sensible à la casse sur les systèmes Unix (j’étais dans mon local bearer windows).
Donc il faut passer cette commande :
SELECT lc.name, lc.value
FROM llx_const lc
WHERE lc.name LIKE 'MAIN_SEC%'
ça va permettre de récuperer
le type de hashage avec la valeur de MAIN_SECURITY_HASH_ALGO
le salage dont la valeur est celle de MAIN_SECURITY_SALT et qui va être concaténé au mot de passe.
Dans le cas de la capture d’écran plus haut, ça correspond à un double hashage, d’abord en md5 puis en sha1
En php ça donne
<?php
$salt = 'La valeur de MAIN_SECURITY_SALT';
$pwd = 'Le mot de passe en clair';
$stringToHash = $salt . $pwd;
echo sha1(md5($stringToHash)); // parce que MAIN_SECURITY_HASH_ALGO = sha1md5, si sha1 alors sha1($stringToHash), si md5 alors md5($stringToHash), etc...
Pour calculer la valeur que doit avoir le champ pass_crypted, tu peux exécuter ce code sur https://onecompiler.com/php et mettre à jour le champ pass_crypted avec le résultat obtenu dans la bdd.
Pour les curieux cf. fonction dol_hash dans core>lib>security.lib.php
Je pense que la façon de résoudre le problème n’est pas la bonne dans la mesure où l’installation de Dolibarr sur o2switch ne devrait pas nécessiter des opérations de niveau geek+5.
Il faut retenter l’opération avec Dolibarr 19 et voir si le problème est le même.
J’ai fait une installation en local avec la v20 et j’ai réussi à me connecter avec les identifiants admin. J’ai installé la v19.0.3 sur le serveur et là aussi j’ai réussi à me connecter avec les identifiants admin. Je comprends pas pourquoi je ne peux pas avec ma premiere installation.
Ce matin j’ai supprimé la toute première installation sur le serveur (la v20) pour refaire une installation de la même version. Problème toujours présent. Je l’ai supprimée pour installer la v19.0.3, ben… également le même problème !
Laquelle ? celle du prefixe personnalisé ? j’ai repondu que je n’y avais pas touché. Celle de refaire une installation 19 ? c’est fait (en local pour tests et en distant). Celle pour laquelle il faut être geek+5 ? comme je l’ai precisé ce n’est pas mon cas et je ne me sent pas du tout a faire ces manips.
si vous avez un accès à la base de données (ce qui est visiblement le cas à la lecture de vos autres messages) vous pouvez ajouter un mail dans le champ email du compte admin.
Il doit alors être possible d’utiliser la fonctionnalité « mot de passe perdu »
J’ai l’impression que vous avez un hébergement web, il vous suffit d’aller sur phpmyadmin, d’ouvrir la table llx_users et de vider le champ pass_crypted et de mettre le mot de passe en clair dans le champ pass