Skip to content
Snippets Groups Projects
Verified Commit 11b35f1b authored by Damien's avatar Damien
Browse files

FEAT #9011 SQl + migration

parent 02ed1132
No related branches found
No related tags found
No related merge requests found
......@@ -714,7 +714,6 @@ abstract class basket_Abstract extends Database
$tab['basket_res_order'] = $this->show_string($res->basket_res_order);
$tab['clause'] = $res->basket_clause;
$tab['is_visible'] = $res->is_visible;
$isVirtual = 'N';
$basketOwner = '';
$absBasket = false;
......@@ -766,7 +765,6 @@ abstract class basket_Abstract extends Database
);
$tab['abs_basket'] = $absBasket;
$tab['is_virtual'] = $isVirtual;
$tab['basket_owner'] = $basketOwner;
$tab['clause'] = $secCtrl->process_security_where_clause(
$tab['clause'],
......@@ -824,44 +822,29 @@ abstract class basket_Abstract extends Database
$tab['clause'] = $res->basket_clause;
$tab['is_visible'] = $res->is_visible;
$stmt = $db->query(
"select user_abs, is_virtual, basket_owner from user_abs where basket_id = ? and new_user = ? and system_id = ?",
"select user_abs, basket_owner from user_abs where basket_id = ? and new_user = ? and system_id = ?",
array($basketId,$userId,$systemId)
);
$absBasket = true;
$res = $stmt->fetchObject();
$isVirtual = $res->is_virtual;
$basketOwner = $res->basket_owner;
$userAbs = $res->user_abs;
if (empty($basketOwner)) {
$basketOwner = $userAbs;
}
if ($isVirtual == 'N') {
$tmpUser = $userAbs;
$stmt = $db->query(
"select firstname, lastname from " . USERS_TABLE
. " where user_id = ? ",
array($userAbs)
);
$res = $stmt->fetchObject();
$nameUserAbs = $res->firstname . ' ' . $res->lastname;
$tab['name'] .= " (" . $nameUserAbs . ")";
$tab['desc'] .= " (" . $nameUserAbs . ")";
$tab['id'] .= "_" . $userAbs;
} else {
$tmpUser = $basketOwner; /// TO DO : test if basket_owner empty
$stmt = $db->query(
"select firstname, lastname from " . USERS_TABLE
." where user_id = ?",
array($basketOwner)
);
$res = $stmt->fetchObject();
$nameBasketOwner = $res->firstname . ' ' . $res->lastname;
$tab['name'] .= " (" . $nameBasketOwner . ")";
$tab['desc'] .= " (" . $nameBasketOwner . ")";
$tab['id'] .= "_" . $basketOwner;
}
$tmpUser = $userAbs;
$stmt = $db->query(
"select firstname, lastname from " . USERS_TABLE
. " where user_id = ? ",
array($userAbs)
);
$res = $stmt->fetchObject();
$nameUserAbs = $res->firstname . ' ' . $res->lastname;
$tab['name'] .= " (" . $nameUserAbs . ")";
$tab['desc'] .= " (" . $nameUserAbs . ")";
$tab['id'] .= "_" . $userAbs;
/// TO DO : Test if tmp_user is empty
if ((isset($_SESSION['user']['UserId'])
......@@ -915,7 +898,6 @@ abstract class basket_Abstract extends Database
$userId
);
$tab['is_virtual'] = $isVirtual;
$tab['basket_owner'] = $basketOwner;
$tab['abs_basket'] = $absBasket;
......
......@@ -11,3 +11,31 @@ ALTER TABLE res_letterbox ADD COLUMN external_signatory_book_id integer;
ALTER TABLE users DROP COLUMN IF EXISTS external_id;
ALTER TABLE users ADD COLUMN external_id json DEFAULT '{}';
DO $$ BEGIN
IF (SELECT count(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'user_abs') = 1 THEN
DROP TABLE IF EXISTS redirected_baskets;
CREATE TABLE redirected_baskets
(
id serial NOT NULL,
actual_user_id INTEGER NOT NULL,
owner_user_id INTEGER NOT NULL,
basket_id character varying(255) NOT NULL,
group_id INTEGER NOT NULL,
CONSTRAINT redirected_baskets_pkey PRIMARY KEY (id),
CONSTRAINT redirected_baskets_unique_key UNIQUE (owner_user_id, basket_id, group_id)
)
WITH (OIDS=FALSE);
INSERT INTO redirected_baskets (owner_user_id, actual_user_id, basket_id, group_id) SELECT users.id, us.id, user_abs.basket_id, usergroups.id FROM usergroups, usergroup_content, user_abs, groupbasket, users, users us
where usergroup_content.group_id = usergroups.group_id
and usergroup_content.user_id = user_abs.user_abs
and users.user_id = user_abs.user_abs
and us.user_id = user_abs.new_user
and groupbasket.group_id = usergroup_content.group_id
and groupbasket.basket_id = user_abs.basket_id;
-- DROP TABLE IF EXISTS user_abs;
END IF;
END$$;
......@@ -363,7 +363,6 @@ abstract class BasketModelAbstract
foreach ($aBaskets as $key => $value) {
unset($aBaskets[$key]['groupserialid']);
$aBaskets[$key]['groupSerialId'] = $value['groupserialid'];
$aBaskets[$key]['is_virtual'] = 'N';
$aBaskets[$key]['basket_owner'] = $aArgs['userId'];
$aBaskets2 = DatabaseModel::select([
'select' => ['new_user'],
......@@ -394,7 +393,7 @@ abstract class BasketModelAbstract
ValidatorModel::stringType($aArgs, ['userId']);
$aBaskets = DatabaseModel::select([
'select' => ['ba.basket_id', 'ba.basket_name', 'ba.basket_desc', 'ba.basket_clause', 'ua.user_abs', 'ua.basket_owner', 'ua.is_virtual'],
'select' => ['ba.basket_id', 'ba.basket_name', 'ba.basket_desc', 'ba.basket_clause', 'ua.user_abs', 'ua.basket_owner'],
'table' => ['baskets ba, user_abs ua'],
'where' => ['ua.new_user = ?', 'ua.basket_id = ba.basket_id'],
'data' => [$aArgs['userId']],
......@@ -410,8 +409,8 @@ abstract class BasketModelAbstract
public static function setRedirectedBaskets(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['userAbs', 'newUser', 'basketId', 'basketOwner', 'isVirtual']);
ValidatorModel::stringType($aArgs, ['userAbs', 'newUser', 'basketId', 'basketOwner', 'isVirtual']);
ValidatorModel::notEmpty($aArgs, ['userAbs', 'newUser', 'basketId', 'basketOwner']);
ValidatorModel::stringType($aArgs, ['userAbs', 'newUser', 'basketId', 'basketOwner']);
DatabaseModel::insert([
'table' => 'user_abs',
......@@ -419,8 +418,7 @@ abstract class BasketModelAbstract
'user_abs' => $aArgs['userAbs'],
'new_user' => $aArgs['newUser'],
'basket_id' => $aArgs['basketId'],
'basket_owner' => $aArgs['basketOwner'],
'is_virtual' => $aArgs['isVirtual']
'basket_owner' => $aArgs['basketOwner']
]
]);
......
......@@ -435,8 +435,7 @@ class UserController
'userAbs' => $user['user_id'],
'newUser' => $value['newUser'],
'basketId' => $value['basketId'],
'basketOwner' => $value['basketOwner'],
'isVirtual' => $value['virtual']
'basketOwner' => $value['basketOwner']
]);
HistoryController::add([
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment