From 9668723af4f9ad633d9c9131fbdceb47fa326d9e Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 3 Jun 2017 16:53:40 -0400 Subject: Add dropdown menu to autocomplete email field from project members --- app/Model/ProjectGroupRoleModel.php | 8 +++++++- app/Model/ProjectPermissionModel.php | 18 ++++++++++++++++++ app/Model/ProjectUserRoleModel.php | 8 +++++++- 3 files changed, 32 insertions(+), 2 deletions(-) (limited to 'app/Model') diff --git a/app/Model/ProjectGroupRoleModel.php b/app/Model/ProjectGroupRoleModel.php index 2729d5a6..2b1973f5 100644 --- a/app/Model/ProjectGroupRoleModel.php +++ b/app/Model/ProjectGroupRoleModel.php @@ -85,7 +85,13 @@ class ProjectGroupRoleModel extends Base public function getUsers($project_id) { return $this->db->table(self::TABLE) - ->columns(UserModel::TABLE.'.id', UserModel::TABLE.'.username', UserModel::TABLE.'.name', self::TABLE.'.role') + ->columns( + UserModel::TABLE.'.id', + UserModel::TABLE.'.username', + UserModel::TABLE.'.name', + UserModel::TABLE.'.email', + self::TABLE.'.role' + ) ->join(GroupMemberModel::TABLE, 'group_id', 'group_id', self::TABLE) ->join(UserModel::TABLE, 'id', 'user_id', GroupMemberModel::TABLE) ->eq(self::TABLE.'.project_id', $project_id) diff --git a/app/Model/ProjectPermissionModel.php b/app/Model/ProjectPermissionModel.php index dabd406c..752913d7 100644 --- a/app/Model/ProjectPermissionModel.php +++ b/app/Model/ProjectPermissionModel.php @@ -93,6 +93,24 @@ class ProjectPermissionModel extends Base return $members; } + public function getMembers($project_id) + { + $userMembers = $this->projectUserRoleModel->getUsers($project_id); + $groupMembers = $this->projectGroupRoleModel->getUsers($project_id); + + $userMembers = array_column_index_unique($userMembers, 'username'); + $groupMembers = array_column_index_unique($groupMembers, 'username'); + return array_merge($userMembers, $groupMembers); + } + + public function getMembersWithEmail($project_id) + { + $members = $this->getMembers($project_id); + return array_filter($members, function (array $user) { + return ! empty($user['email']); + }); + } + /** * Return true if everybody is allowed for the project * diff --git a/app/Model/ProjectUserRoleModel.php b/app/Model/ProjectUserRoleModel.php index 76094431..a95cf5d9 100644 --- a/app/Model/ProjectUserRoleModel.php +++ b/app/Model/ProjectUserRoleModel.php @@ -98,7 +98,13 @@ class ProjectUserRoleModel extends Base public function getUsers($project_id) { return $this->db->table(self::TABLE) - ->columns(UserModel::TABLE.'.id', UserModel::TABLE.'.username', UserModel::TABLE.'.name', self::TABLE.'.role') + ->columns( + UserModel::TABLE.'.id', + UserModel::TABLE.'.username', + UserModel::TABLE.'.name', + UserModel::TABLE.'.email', + self::TABLE.'.role' + ) ->join(UserModel::TABLE, 'id', 'user_id') ->eq('project_id', $project_id) ->asc(UserModel::TABLE.'.username') -- cgit v1.2.3