Project

General

Profile

Feature #7832

Use admin ID instead of 1 in course example content creation

Added by David Guénard almost 4 years ago. Updated over 3 years ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
Course settings
Target version:
Start date:
14/09/2015
Due date:
% Done:

0%

Estimated time:
Complexity:
Easy
SCRUM pts - complexity:
?

Description

Après installation beta3:

Impossible de créer un cours ?
Il est bien créé en base de données, mais message "Une erreur s'est produite. Veuillez contacter l'administrateur." dans main/create_course/add_course.php

Il n'y a pas d'autre erreur et naturellement le répertoire est accessible en écriture.

Details

The description above is the original one. The issue has now changed to a feature request to avoid using a hardcoded ID "1" in the creation of default content for the course, as found in add_course.lib.inc.php.

History

#1

Updated by David Guénard almost 4 years ago

Solutions :
Après installation de la base de données :

  1. Pas d'entrée dans la table access_url (la table est vide ?) -> erreur lors des insertions dans access_url_rel_course (violation de contrainte)
  2. lors de l'insertion des valeurs dans la table c_document : requete du type ; INSERT INTO c_document (id, c_id, path,title,filetype,size) VALUES (1, 178, '/shared_folder', 'Répertoires des utilisateurs', 'folder', '0')
    Erreur -> Fields readonly et session_id n'ont pas de valeurs par default...

Il doivent donc être initialisés ! ce qui n'est pas le cas dans la requette...

Je ne comprends vraiment pas comment ça fonctionne sur https://unstable.chamilo.org et pas sur une version beta 3 ?

#2

Updated by David Guénard almost 4 years ago

Suite des problèmes :

Ligne 1160 de add_course.lib.inc.php

$sql ="INSERT INTO $tableItem (id, c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility)
VALUES ($counter, $course_id,'document',1,'$now', '$now', $docId, 'DocumentAdded', 1, NULL, NULL, 0)";

La requete fonctionne que si l'utilisateur admin a l'identifiant 1 ! sinon violation d'intégrité...

#3

Updated by David Guénard almost 4 years ago

Pour une raison inconnu ma variable auto_increment_increment était à 3 au niveau du moteur MariaDb !
Donc l'id du premier utilisateur était 3 au lieu de 1, mais cen'est peut-être pas judicieux de le mettre en dur dans la requete ?

#4

Updated by Yannick Warnier almost 4 years ago

  • Tracker changed from Bug to Feature
  • Subject changed from Impossible de créer un cours to Use admin ID instead of 1 in course example content creation
  • Description updated (diff)
  • Priority changed from Normal to Low
  • Target version changed from 1.10.0 to 2.0
  • Complexity changed from Normal to Easy

Dans la dernière version git, il s'agit de la ligne 1145 (fonction insertDocument()).
Je suis d'accord qu'il n'est pas judicieux d'utiliser id 1 comme créateur. Cela dit, les cas sont assez restreints puisque ce code n'est utilisé que dans le cas de la création d'un cours avec du contenu d'exemple (qui n'est pas une option par défaut).
L'erreur elle-même est probablement causée par l'ajout de clés étrangères dans la version 1.10.0, qui contrôle probablement l'existence d'un id "1" dans la table user, ce qui n'était pas le cas avant.

Enfin, quoi qu'il en soit, il faut aussi que auto_increment_increment soit différent de 1 pour que le problème apparaisse. Je propose donc de régler ce problème dans une version antérieure de Chamilo pour ne pas perturber notre agenda avec un problème mineur.

#5

Updated by Yannick Warnier over 3 years ago

  • Target version changed from 2.0 to 3.0

Also available in: Atom PDF