[svn r14007] improve relation between sessions and dropbox tool : a file of a session is no longer visible in another session (FS#2087)

skala
Eric Marguin 18 years ago
parent a8961a00a4
commit ea374a7d54
  1. 17
      main/dropbox/dropbox_class.inc.php
  2. 8
      main/inc/lib/add_course.lib.inc.php
  3. 6
      main/install/migrate-db-1.8.4-1.8.5-pre.sql

@ -184,7 +184,7 @@ class Dropbox_Work {
{
$this->upload_date = $this->last_upload_date;
$sql="INSERT INTO ".dropbox_cnf("tbl_file")."
(uploader_id, filename, filesize, title, description, author, upload_date, last_upload_date)
(uploader_id, filename, filesize, title, description, author, upload_date, last_upload_date, session_id)
VALUES ('".addslashes($this->uploader_id)."'
, '".addslashes($this->filename)."'
, '".addslashes($this->filesize)."'
@ -193,6 +193,7 @@ class Dropbox_Work {
, '".addslashes($this->author)."'
, '".addslashes($this->upload_date)."'
, '".addslashes($this->last_upload_date)."'
, ".intval($_SESSION['id_session'])."
)";
$result = api_sql_query($sql,__FILE__,__LINE__);
@ -356,8 +357,8 @@ class Dropbox_SentWork extends Dropbox_Work
foreach ($this->recipients as $rec)
{
$sql="INSERT INTO ".dropbox_cnf("tbl_post")."
(file_id, dest_user_id)
VALUES ('".addslashes($this->id)."', '".addslashes($rec["id"])."')";
(file_id, dest_user_id, session_id)
VALUES ('".addslashes($this->id)."', '".addslashes($rec["id"])."', ".intval($_SESSION['id_session']).")";
$result = api_sql_query($sql); //if work already exists no error is generated
//insert entries into person table
@ -461,6 +462,10 @@ class Dropbox_Person
WHERE r.dest_user_id = '".addslashes($this->userId)."'
AND r.dest_user_id = p.user_id
AND r.file_id = p.file_id";
if(intval($_SESSION['id_session']>0))
$sql .= " AND r.session_id = ".intval($_SESSION['id_session']);
$result = api_sql_query($sql,__FILE__,__LINE__);
while ($res = Database::fetch_array($result)) {
$temp = new Dropbox_Work($res["file_id"]);
@ -473,7 +478,11 @@ class Dropbox_Person
FROM $file_tbl f, $person_tbl p
WHERE f.uploader_id = '".addslashes($this->userId)."'
AND f.uploader_id = p.user_id
AND f.id = p.file_id";
AND f.id = p.file_id";
if(intval($_SESSION['id_session']>0))
$sql .= " AND f.session_id = ".intval($_SESSION['id_session']);
$result =api_sql_query($sql,__FILE__,__LINE__);
while ($res = Database::fetch_array($result)) {
$this->sentWork[] = new Dropbox_SentWork($res["id"]);

@ -850,10 +850,13 @@ function update_Db_course($courseDbName)
upload_date datetime NOT NULL default '0000-00-00 00:00:00',
last_upload_date datetime NOT NULL default '0000-00-00 00:00:00',
cat_id int NOT NULL default 0,
session_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY UN_filename (filename)
)");
api_sql_query("ALTER TABLE `$TABLETOOLDROPBOXFILE` ADD INDEX ( `session_id` )");
api_sql_query("
CREATE TABLE `".$TABLETOOLDROPBOXPOST . "` (
file_id int unsigned NOT NULL,
@ -861,8 +864,11 @@ function update_Db_course($courseDbName)
feedback_date datetime NOT NULL default '0000-00-00 00:00:00',
feedback text default '',
cat_id int(11) NOT NULL default 0,
session_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (file_id,dest_user_id)
)");
api_sql_query("ALTER TABLE `$TABLETOOLDROPBOXPOST` ADD INDEX ( `session_id` )");
api_sql_query("
CREATE TABLE `".$TABLETOOLDROPBOXPERSON . "` (

@ -52,4 +52,8 @@ ALTER TABLE track_e_uploads ADD INDEX (upload_cours_id);
CREATE TABLE lp_iv_objective(id bigint unsigned primary key auto_increment, lp_iv_id bigint unsigned not null, order_id smallint unsigned not null default 0, objective_id varchar(255) not null default '', score_raw float unsigned not null default 0, score_max float unsigned not null default 0, score_min float unsigned not null default 0, status char(32) not null default 'not attempted');
ALTER TABLE lp_iv_objective ADD INDEX (lp_iv_id);
ALTER TABLE lp_item CHANGE prerequisite prerequisite TEXT DEFAULT NULL;
INSERT INTO course_setting(variable,value,category) VALUES ('email_alert_manager_on_new_quiz',0,'quiz');
INSERT INTO course_setting(variable,value,category) VALUES ('email_alert_manager_on_new_quiz',0,'quiz');
ALTER TABLE `dropbox_post` ADD `session_id` SMALLINT UNSIGNED NOT NULL ;
ALTER TABLE `dropbox_post` ADD INDEX ( `session_id` ) ;
ALTER TABLE `dropbox_file` ADD `session_id` SMALLINT UNSIGNED NOT NULL ;
ALTER TABLE `dropbox_file` ADD INDEX ( `session_id` ) ;

Loading…
Cancel
Save