From 933fe160e73e3b89a6f0f7097db50b1e36a5720c Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Fri, 3 Apr 2020 18:20:59 +0100 Subject: [PATCH] FIX #13678 TIME 0:20 order by primary entity --- src/app/user/controllers/UserController.php | 12 ++++++------ src/app/user/models/UserModelAbstract.php | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 02209e26202..c461b0c1724 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -127,7 +127,7 @@ class UserController $user['groups'] = UserModel::getGroupsByLogin(['login' => $user['user_id']]); $user['allGroups'] = GroupModel::getAvailableGroupsByUserId(['userId' => $user['id']]); - $user['entities'] = UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']]); + $user['entities'] = UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']]); $user['allEntities'] = EntityModel::getAvailableEntitiesForAdministratorByUserId(['userId' => $user['user_id'], 'administratorUserId' => $GLOBALS['userId']]); $user['baskets'] = BasketModel::getBasketsByLogin(['login' => $user['user_id']]); $user['assignedBaskets'] = RedirectBasketModel::getAssignedBasketsByUserId(['userId' => $user['id']]); @@ -504,7 +504,7 @@ class UserController $user['signatures'] = UserSignatureModel::getByUserSerialId(['userSerialid' => $user['id']]); $user['emailSignatures'] = UserEmailSignatureModel::getByUserId(['userId' => $GLOBALS['id']]); $user['groups'] = UserModel::getGroupsByLogin(['login' => $user['user_id']]); - $user['entities'] = UserModel::getEntitiesById(['id' => $GLOBALS['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']]); + $user['entities'] = UserModel::getEntitiesById(['id' => $GLOBALS['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']]); $user['baskets'] = BasketModel::getBasketsByLogin(['login' => $user['user_id']]); $user['assignedBaskets'] = RedirectBasketModel::getAssignedBasketsByUserId(['userId' => $user['id']]); $user['redirectedBaskets'] = RedirectBasketModel::getRedirectedBasketsByUserId(['userId' => $user['id']]); @@ -1202,7 +1202,7 @@ class UserController return $response->withStatus(400)->withJson(['errors' => 'User does not exist']); } - $entities = UserModel::getEntitiesById(['id' => $args['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']]); + $entities = UserModel::getEntitiesById(['id' => $args['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']]); return $response->withJson(['entities' => $entities]); } @@ -1244,7 +1244,7 @@ class UserController ]); return $response->withJson([ - 'entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']]), + 'entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']]), 'allEntities' => EntityModel::getAvailableEntitiesForAdministratorByUserId(['userId' => $user['user_id'], 'administratorUserId' => $GLOBALS['userId']]) ]); } @@ -1289,7 +1289,7 @@ class UserController UserEntityModel::updateUserPrimaryEntity(['id' => $aArgs['id'], 'entityId' => $aArgs['entityId']]); - return $response->withJson(['entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']])]); + return $response->withJson(['entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']])]); } public function deleteEntity(Request $request, Response $response, array $aArgs) @@ -1391,7 +1391,7 @@ class UserController ]); return $response->withJson([ - 'entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity']]), + 'entities' => UserModel::getEntitiesById(['id' => $aArgs['id'], 'select' => ['entities.id', 'users_entities.entity_id', 'entities.entity_label', 'users_entities.user_role', 'users_entities.primary_entity'], 'orderBy' => ['users_entities.primary_entity DESC']]), 'allEntities' => EntityModel::getAvailableEntitiesForAdministratorByUserId(['userId' => $user['user_id'], 'administratorUserId' => $GLOBALS['userId']]) ]); } diff --git a/src/app/user/models/UserModelAbstract.php b/src/app/user/models/UserModelAbstract.php index 0824b3b172a..7bea8342f25 100755 --- a/src/app/user/models/UserModelAbstract.php +++ b/src/app/user/models/UserModelAbstract.php @@ -385,13 +385,14 @@ abstract class UserModelAbstract { ValidatorModel::notEmpty($args, ['id', 'select']); ValidatorModel::intVal($args, ['id']); - ValidatorModel::arrayType($args, ['select']); + ValidatorModel::arrayType($args, ['select', 'orderBy']); $entities = DatabaseModel::select([ 'select' => $args['select'], 'table' => ['users, users_entities, entities'], 'where' => ['users.id = users_entities.user_id', 'users_entities.entity_id = entities.entity_id', 'users.id = ?'], - 'data' => [$args['id']] + 'data' => [$args['id']], + 'order_by' => empty($args['orderBy']) ? [] : $args['orderBy'], ]); return $entities; -- GitLab