Add dropdown menu to autocomplete email field from project members

This commit is contained in:
Frederic Guillot
2017-06-03 16:53:40 -04:00
parent e27148dfd8
commit 9668723af4
8 changed files with 62 additions and 5 deletions

View File

@@ -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)

View File

@@ -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
*

View File

@@ -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')