Fix conflict

This commit is contained in:
cyril lopez 2017-11-30 15:51:19 +01:00
commit 6478d87a6f
4 changed files with 107 additions and 84 deletions

View File

@ -82,5 +82,17 @@ module.exports = {
.orWhere('email', 'LIKE', `%${params.id}%`);
})
.fetchAll();
},
countByRoles: async function () {
const result = await strapi.connections[this.connection].raw('SELECT COUNT("id") AS total, "role" FROM "user" GROUP BY "role";');
return result.rows.reduce((acc, current) => {
acc.push({
_id: parseFloat(current.role),
total: parseFloat(current.total)
});
return acc;
}, []);
}
};

View File

@ -57,5 +57,16 @@ module.exports = {
{ email: re }
]
});
},
countByRoles: async function () {
return this.aggregate([
{
$group: {
_id: "$role",
total: {$sum: 1}
}
}
]);
}
};

View File

@ -269,7 +269,7 @@
"policy": ""
},
"count": {
"enabled": true,
"enabled": false,
"policy": ""
},
"findOne": {
@ -277,7 +277,7 @@
"policy": ""
},
"create": {
"enabled": true,
"enabled": false,
"policy": ""
},
"update": {
@ -302,23 +302,19 @@
"enabled": false,
"policy": ""
},
"updateModel": {
"getModel": {
"enabled": false,
"policy": ""
},
"checkTableExists": {
"getConnections": {
"enabled": false,
"policy": ""
},
"autoReload": {
"enabled": true,
"policy": ""
},
"createModel": {
"enabled": false,
"policy": ""
},
"getModel": {
"updateModel": {
"enabled": false,
"policy": ""
},
@ -326,11 +322,15 @@
"enabled": false,
"policy": ""
},
"identity": {
"autoReload": {
"enabled": false,
"policy": ""
},
"getConnections": {
"checkTableExists": {
"enabled": false,
"policy": ""
},
"identity": {
"enabled": false,
"policy": ""
}
@ -340,14 +340,50 @@
"settings-manager": {
"controllers": {
"settingsmanager": {
"menu": {
"enabled": false,
"policy": ""
},
"environments": {
"enabled": false,
"policy": ""
},
"languages": {
"enabled": false,
"policy": ""
},
"databases": {
"enabled": false,
"policy": ""
},
"database": {
"enabled": false,
"policy": ""
},
"databaseModel": {
"enabled": false,
"policy": ""
},
"get": {
"enabled": false,
"policy": ""
},
"update": {
"enabled": false,
"policy": ""
},
"createLanguage": {
"enabled": false,
"policy": ""
},
"deleteLanguage": {
"enabled": false,
"policy": ""
},
"createDatabase": {
"enabled": false,
"policy": ""
},
"updateDatabase": {
"enabled": false,
"policy": ""
@ -360,45 +396,9 @@
"enabled": false,
"policy": ""
},
"update": {
"enabled": false,
"policy": ""
},
"databaseModel": {
"enabled": false,
"policy": ""
},
"createLanguage": {
"enabled": false,
"policy": ""
},
"get": {
"enabled": false,
"policy": ""
},
"createDatabase": {
"enabled": false,
"policy": ""
},
"databases": {
"enabled": false,
"policy": ""
},
"languages": {
"enabled": false,
"policy": ""
},
"database": {
"enabled": false,
"policy": ""
},
"identity": {
"enabled": false,
"policy": ""
},
"menu": {
"enabled": false,
"policy": ""
}
}
}
@ -454,38 +454,6 @@
}
},
"userspermissions": {
"searchUsers": {
"enabled": false,
"policy": ""
},
"deleteRole": {
"enabled": false,
"policy": ""
},
"getPolicies": {
"enabled": false,
"policy": ""
},
"getRoles": {
"enabled": false,
"policy": ""
},
"getRole": {
"enabled": false,
"policy": ""
},
"getPermissions": {
"enabled": false,
"policy": ""
},
"init": {
"enabled": true,
"policy": ""
},
"index": {
"enabled": false,
"policy": ""
},
"createRole": {
"enabled": false,
"policy": ""
@ -494,17 +462,49 @@
"enabled": false,
"policy": ""
},
"identity": {
"deleteRole": {
"enabled": false,
"policy": ""
},
"getPermissions": {
"enabled": false,
"policy": ""
},
"getPolicies": {
"enabled": false,
"policy": ""
},
"getRole": {
"enabled": false,
"policy": ""
},
"getRoles": {
"enabled": false,
"policy": ""
},
"index": {
"enabled": false,
"policy": ""
},
"init": {
"enabled": true,
"policy": ""
},
"searchUsers": {
"enabled": false,
"policy": ""
},
"updateRole": {
"enabled": false,
"policy": ""
},
"identity": {
"enabled": false,
"policy": ""
}
}
}
}
}
}
}
}

View File

@ -78,15 +78,15 @@ module.exports = {
return _.pick(appRoles, [roleId]);
},
getRoles: () => {
getRoles: async () => {
const Service = strapi.plugins['users-permissions'].services.userspermissions;
const roles = require(Service.getRoleConfigPath());
const usersCount = await strapi.query('user', 'users-permissions').countByRoles();
const formattedRoles = Object.keys(roles).reduce((acc, key) => {
const role = _.pick(roles[key], ['name', 'description']);
_.set(role, 'id', key);
// TODO get number_users
_.set(role, 'nb_users', 0);
_.set(role, 'nb_users', _.get(_.find(usersCount, { _id: parseFloat(key) }), 'total'));
acc.push(role);
return acc;