diff --git a/migration/20.10/2010.sql b/migration/20.10/2010.sql index 326530cbcf33bf558e57abb1850dba5302159a71..384c6ed7c69dbbfc49dd5d51a91f057eb5ef39a5 100755 --- a/migration/20.10/2010.sql +++ b/migration/20.10/2010.sql @@ -43,10 +43,20 @@ DO $$ BEGIN UPDATE res_letterbox set dest_user_tmp = (select id FROM users where users.user_id = res_letterbox.dest_user); ALTER TABLE res_letterbox DROP COLUMN IF EXISTS dest_user; ALTER TABLE res_letterbox RENAME COLUMN dest_user_tmp TO dest_user; + UPDATE baskets SET basket_clause = REGEXP_REPLACE(basket_clause, 'dest_user(\s*)=(\s*)@user', 'dest_user = @user_id', 'gmi'); + UPDATE security SET where_clause = REGEXP_REPLACE(where_clause, 'dest_user(\s*)=(\s*)@user', 'dest_user = @user_id', 'gmi'); + END IF; +END$$; +DO $$ BEGIN + IF (SELECT count(column_name) from information_schema.columns where table_name = 'basket_persistent_mode' and column_name = 'user_id' and data_type != 'integer') THEN + ALTER TABLE basket_persistent_mode ADD COLUMN user_id_tmp INTEGER; + UPDATE basket_persistent_mode set user_id_tmp = (select id FROM users where users.user_id = basket_persistent_mode.user_id); + DELETE FROM basket_persistent_mode WHERE user_id_tmp IS NULL; + ALTER TABLE basket_persistent_mode ALTER COLUMN user_id_tmp set not null; + ALTER TABLE basket_persistent_mode DROP COLUMN IF EXISTS user_id; + ALTER TABLE basket_persistent_mode RENAME COLUMN user_id_tmp TO user_id; END IF; END$$; -UPDATE baskets SET basket_clause = REGEXP_REPLACE(basket_clause, 'dest_user(\s*)=(\s*)@user', 'dest_user = @user_id', 'gmi'); -UPDATE security SET where_clause = REGEXP_REPLACE(where_clause, 'dest_user(\s*)=(\s*)@user', 'dest_user = @user_id', 'gmi'); /* RE CREATE VIEWS */ diff --git a/sql/structure.sql b/sql/structure.sql index 0a80a3fdd55e551f43ef49e03eec5d2b6570c8c6..33f447a99f87aa4b861c0d6d95a5e6a8751bc6c1 100755 --- a/sql/structure.sql +++ b/sql/structure.sql @@ -330,7 +330,7 @@ WITH (OIDS=FALSE); CREATE TABLE basket_persistent_mode ( res_id bigint, - user_id character varying(128), + user_id INTEGER not null, is_persistent character varying(1) ) WITH ( diff --git a/src/app/action/controllers/ActionMethodController.php b/src/app/action/controllers/ActionMethodController.php index 25ecd1bd08cb20335d4d02792acb507c5bb01505..8c3400d4288360e81a83436177257797084113ca 100644 --- a/src/app/action/controllers/ActionMethodController.php +++ b/src/app/action/controllers/ActionMethodController.php @@ -193,12 +193,12 @@ class ActionMethodController BasketPersistenceModel::delete([ 'where' => ['res_id = ?', 'user_id = ?'], - 'data' => [$aArgs['resId'], $GLOBALS['userId']] + 'data' => [$aArgs['resId'], $GLOBALS['id']] ]); BasketPersistenceModel::create([ 'res_id' => $aArgs['resId'], - 'user_id' => $GLOBALS['userId'], + 'user_id' => $GLOBALS['id'], 'is_persistent' => 'N' ]); @@ -212,12 +212,12 @@ class ActionMethodController BasketPersistenceModel::delete([ 'where' => ['res_id = ?', 'user_id = ?'], - 'data' => [$aArgs['resId'], $GLOBALS['userId']] + 'data' => [$aArgs['resId'], $GLOBALS['id']] ]); BasketPersistenceModel::create([ 'res_id' => $aArgs['resId'], - 'user_id' => $GLOBALS['userId'], + 'user_id' => $GLOBALS['id'], 'is_persistent' => 'Y' ]);