From 46145707edd41c81d5987a05196ede4253f3e6b5 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Tue, 3 Sep 2019 17:37:00 +0800 Subject: [PATCH] Fix #6027 - group memberships on users list --- DataObjects/Core_person.php | 25 ++++++++++++++++++++++++- Pman.Tab.PersonList.js | 19 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/DataObjects/Core_person.php b/DataObjects/Core_person.php index 171e7e60..1e30d4ad 100644 --- a/DataObjects/Core_person.php +++ b/DataObjects/Core_person.php @@ -1134,8 +1134,31 @@ class Pman_Core_DataObjects_Core_person extends DB_DataObject LENGTH({$this->tableName()}.oath_key) AS length_oath_key "); } + if (isset($q['_with_group_membership'])) { + $this->selectAddGroupMemberships(); + } - + } + + function selectAddGroupMemberships() + { + $this->selectAdd(" + CONCAT ('[', + COALESCE(( + SELECT + GROUP_CONCAT( + JSON_QUOTE(core_group.name) + ) + FROM + core_group_member + LEFT JOIN + core_group + ON + core_group.id = core_group_member.group_id + WHERE + core_group_member.user_id = core_person.id + ), ''), + ']') as member_of_json"); } function setFromRoo($ar, $roo) diff --git a/Pman.Tab.PersonList.js b/Pman.Tab.PersonList.js index 34173faf..fcd47cd4 100644 --- a/Pman.Tab.PersonList.js +++ b/Pman.Tab.PersonList.js @@ -623,6 +623,25 @@ Pman.Tab.PersonList.prototype = { // width : 150 }, cfg); }, + + c_group_membership : function(cfg) { + cfg = cfg || {}; + return Roo.apply({ + // id : (this.id + '-name').toLowerCase(), + header : "Group Membership", + dataIndex : 'member_of_json', + sortable : false, + renderer : function(vv,p,r) { + var v = vv ? JSON.parse(vv).join("\n") : ''; + if(r.data.active != 1){ + return String.format('
{0}
', v).split("\n").join("
"); + } + return String.format('{0}', v).split("\n").join("
"); + }, + width : 150 + }, cfg); + }, + c_company_id_comptype : function(cfg) { cfg = cfg || {}; return Roo.apply({ -- 2.39.2