From dfb0b9d1faa0603393ddbcb2831da52ba76ea3e9 Mon Sep 17 00:00:00 2001 From: plegall Date: Thu, 20 Jan 2011 13:32:34 +0000 Subject: bug 937 fixed: makes sure a user won't see the thumbnail of a photo that has a higher privacy level than user privacy level. For an acceptable solution at performance level, I have implemented a cache: for a given user, each album has a representative_picture_id. This cache also avoids to perform numerous "order by rand()" SQL queries which is the case when $conf['allow_random_representative'] = true; git-svn-id: http://piwigo.org/svn/trunk@8802 68402e56-0260-453c-a942-63ccdbb3a9ee --- install/db/95-database.php | 53 +++++++++++++++++++++++++++++++++ install/piwigo_structure-mysql.sql | 1 + install/piwigo_structure-pdo-sqlite.sql | 1 + install/piwigo_structure-pgsql.sql | 1 + install/piwigo_structure-sqlite.sql | 2 ++ 5 files changed, 58 insertions(+) create mode 100644 install/db/95-database.php (limited to 'install') diff --git a/install/db/95-database.php b/install/db/95-database.php new file mode 100644 index 000000000..0507b6c0f --- /dev/null +++ b/install/db/95-database.php @@ -0,0 +1,53 @@ + \ No newline at end of file diff --git a/install/piwigo_structure-mysql.sql b/install/piwigo_structure-mysql.sql index 39184daab..f9e01ddad 100644 --- a/install/piwigo_structure-mysql.sql +++ b/install/piwigo_structure-mysql.sql @@ -368,6 +368,7 @@ CREATE TABLE `piwigo_user_cache_categories` ( `nb_images` mediumint(8) unsigned NOT NULL default '0', `count_images` mediumint(8) unsigned default '0', `count_categories` mediumint(8) unsigned default '0', + `user_representative_picture_id` mediumint(8) unsigned default NULL, PRIMARY KEY (`user_id`,`cat_id`) ) TYPE=MyISAM; diff --git a/install/piwigo_structure-pdo-sqlite.sql b/install/piwigo_structure-pdo-sqlite.sql index c01f55892..a46c5929d 100644 --- a/install/piwigo_structure-pdo-sqlite.sql +++ b/install/piwigo_structure-pdo-sqlite.sql @@ -425,6 +425,7 @@ CREATE TABLE piwigo_user_cache_categories "nb_images" INTEGER default 0 NOT NULL, "count_images" INTEGER default 0, "count_categories" INTEGER default 0, + "user_representative_picture_id" INTEGER, PRIMARY KEY ("user_id","cat_id") ); diff --git a/install/piwigo_structure-pgsql.sql b/install/piwigo_structure-pgsql.sql index feab9acc3..ca1c003e0 100644 --- a/install/piwigo_structure-pgsql.sql +++ b/install/piwigo_structure-pgsql.sql @@ -514,6 +514,7 @@ CREATE TABLE "piwigo_user_cache_categories" "nb_images" INTEGER default 0 NOT NULL, "count_images" INTEGER default 0, "count_categories" INTEGER default 0, + "user_representative_picture_id" INTEGER, PRIMARY KEY ("user_id","cat_id") ); diff --git a/install/piwigo_structure-sqlite.sql b/install/piwigo_structure-sqlite.sql index 54e2f0d12..a46c5929d 100644 --- a/install/piwigo_structure-sqlite.sql +++ b/install/piwigo_structure-sqlite.sql @@ -425,6 +425,7 @@ CREATE TABLE piwigo_user_cache_categories "nb_images" INTEGER default 0 NOT NULL, "count_images" INTEGER default 0, "count_categories" INTEGER default 0, + "user_representative_picture_id" INTEGER, PRIMARY KEY ("user_id","cat_id") ); @@ -535,3 +536,4 @@ CREATE TABLE piwigo_comments CREATE INDEX "comments_i2" ON "piwigo_comments" ("validation_date"); CREATE INDEX "comments_i1" ON "piwigo_comments" ("image_id"); + -- cgit v1.2.3