Просмотр исходного кода

Merge pull request #10940 from growilabs/fix/180705-duplicate-user-data-is-appearing-in-the-user-table

fix: Duplicate user data is appearing in the user table at /user/admin
Yuki Takei 1 неделя назад
Родитель
Сommit
85a160c04c

+ 4 - 4
apps/app/src/client/services/AdminUsersContainer.js

@@ -25,8 +25,8 @@ export default class AdminUsersContainer extends Container {
 
     this.state = {
       users: [],
-      sort: 'id',
-      sortOrder: 'asc',
+      sort: 'createdAt',
+      sortOrder: 'desc',
       isPasswordResetModalShown: false,
       isUserInviteModalShown: false,
       userForPasswordResetModal: null,
@@ -119,8 +119,8 @@ export default class AdminUsersContainer extends Container {
 
   async resetAllChanges() {
     await this.setState({
-      sort: 'id',
-      sortOrder: 'asc',
+      sort: 'createdAt',
+      sortOrder: 'desc',
       searchText: '',
       selectedStatusList: new Set(['all']),
     });

+ 2 - 1
apps/app/src/server/routes/apiv3/users.js

@@ -150,7 +150,6 @@ module.exports = (crowi) => {
     query('sortOrder').isIn(['asc', 'desc']),
     // validate sort : what column you will sort
     query('sort').isIn([
-      'id',
       'status',
       'username',
       'name',
@@ -341,6 +340,8 @@ module.exports = (crowi) => {
       const { sort, sortOrder } = req.query;
       const sortOutput = {
         [sort]: sortOrder === 'desc' ? -1 : 1,
+        // tiebreaker: ensure stable pagination when the primary sort key has duplicate values
+        _id: 1,
       };
 
       //  For more information about the external specification of the User API, see here (https://dev.growi.org/5fd7466a31d89500488248e3)