Comment j'ai planté mon serveur : leçon n°1

Bonjour :happy:

Dolibarr 6.0.0

  • Inscrire un nouvel utilisateur
    [li]Lui donner accès a quelques fonction de bases dont
    [ul]
  • Lire les notes de frais & Créer/modifier les notes de frais
  • Consulter les tiers (sociétés) liés à l’utilisateur
    [/ul]
    [/li]
  • Accèder à la page d’accueil GRH
  • La page met très très très très longtemps avant de s’afficher et plante mon serveur mutualisé ,( j’ai donc testé plusieurs fois et je me suis fait black lister par mon hebergeur pour cause de : Surcharge depuis votre compte )

Dans les logs du ticket support :

6905720	myserver_dolib	localhost	myserver_dolib	Query	3946	Copying to tmp table on disk	SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, x.rowid, x.ref, x.date_d	0.000 
6906896	myserver_dolib	localhost	myserver_dolib	Query	3670	Copying to tmp table on disk	SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, x.rowid, x.ref, x.date_d	0.000 
6908145	myserver_dolib	localhost	myserver_dolib	Query	3448	Copying to tmp table on disk	SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, x.rowid, x.ref, x.date_d	0.000 
6909614	myserver_dolib	localhost	myserver_dolib	Query	3098	Copying to tmp table on disk	SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, x.rowid, x.ref, x.date_d	0.000 
6915055	myserver_dolib	localhost	myserver_dolib	Query	1788	Copying to tmp table on disk	SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, x.rowid, x.ref, x.date_d	0.000 

Qui correspond à la requete dans la page :

[ul]
[li]dolibarr/hrm/index.php[/li]
[/ul]et le code

$sql = "SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.statut, u.photo, d.rowid, d.dated as date, d.tms as dm, d.km, d.fk_statut";
	$sql.= " FROM ".MAIN_DB_PREFIX."deplacement as d, ".MAIN_DB_PREFIX."user as u";
	if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."societe_commerciaux as sc";
	$sql.= " WHERE u.rowid = d.fk_user";
	$sql.= " AND d.entity = ".$conf->entity;
	if (empty($user->rights->deplacement->readall) && empty($user->rights->deplacement->lire_tous)) $sql.=' AND d.fk_user IN ('.join(',',$childids).')';
	if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= " AND d.fk_soc = s. rowid AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
	if (!empty($socid)) $sql.= " AND d.fk_soc = ".$socid;
	$sql.= $db->order("d.tms","DESC");
	$sql.= $db->plimit($max, 0);

Correction donner accès à :

  • Etendre l’accès à tous les tiers (pas seulement ceux dont l’utilisateur est enregistré en tant que commercial).
    Non effectif pour les utilisateurs externes (toujours limités à eux-mêmes sur les propositions commerciales, commandes, factures, contrats, etc).
    Non effectif sur les projets (seules s’appliquent les permissions propres au module projets, et les règles de visibilité et d’assignation des tâches)[/li]

:tongue:

Hello,
Je viens de tester (avec une goûte de sueur) sur la 7.0.3 en test. Pas de planté.
Nous avons pourtant des utilisateurs (plusieurs groupes avec des droits incrémentaux: employés (la base), commerciaux, adv, … jusqu’à direction) et le module GRH.
Mais par contre, pas de module note de frais.

1 J'aime

Hahha c’est pas sorcier :laugh:

:tongue:

tiens tiens… ça me rappelle quelque chose que j’ai rencontré moi aussi : par ici !

Bonjour :happy:
Ahhh ça me rassure je ne suis pas tout seul :whistle:

:laugh: :laugh: :laugh: :laugh: