Add user backend provider system
This commit is contained in:
@@ -2,37 +2,59 @@
|
||||
|
||||
namespace Kanboard\Formatter;
|
||||
|
||||
use Kanboard\Model\UserModel;
|
||||
use Kanboard\Core\User\UserProviderInterface;
|
||||
use Kanboard\Core\Filter\FormatterInterface;
|
||||
|
||||
/**
|
||||
* Auto-complete formatter for user filter
|
||||
* Auto-complete formatter for users
|
||||
*
|
||||
* @package formatter
|
||||
* @package Kanboard\Formatter
|
||||
* @author Frederic Guillot
|
||||
*/
|
||||
class UserAutoCompleteFormatter extends BaseFormatter implements FormatterInterface
|
||||
{
|
||||
/**
|
||||
* Format the tasks for the ajax auto-completion
|
||||
* Users found
|
||||
*
|
||||
* @access protected
|
||||
* @var UserProviderInterface[]
|
||||
*/
|
||||
protected $users;
|
||||
|
||||
/**
|
||||
* Set users
|
||||
*
|
||||
* @access public
|
||||
* @param UserProviderInterface[] $users
|
||||
* @return $this
|
||||
*/
|
||||
public function withUsers(array $users)
|
||||
{
|
||||
$this->users = $users;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the users for the ajax auto-completion
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function format()
|
||||
{
|
||||
$users = $this->query->columns(UserModel::TABLE.'.id', UserModel::TABLE.'.username', UserModel::TABLE.'.name')->findAll();
|
||||
$result = array();
|
||||
|
||||
foreach ($users as &$user) {
|
||||
if (empty($user['name'])) {
|
||||
$user['value'] = $user['username'].' (#'.$user['id'].')';
|
||||
$user['label'] = $user['username'];
|
||||
} else {
|
||||
$user['value'] = $user['name'].' (#'.$user['id'].')';
|
||||
$user['label'] = $user['name'].' ('.$user['username'].')';
|
||||
}
|
||||
foreach ($this->users as $user) {
|
||||
$result[] = array(
|
||||
'id' => $user->getInternalId(),
|
||||
'username' => $user->getUsername(),
|
||||
'external_id' => $user->getExternalId(),
|
||||
'external_id_column' => $user->getExternalIdColumn(),
|
||||
'value' => $user->getName() === '' ? $user->getUsername() : $user->getName(),
|
||||
'label' => $user->getName() === '' ? $user->getUsername() : $user->getName().' ('.$user->getUsername().')',
|
||||
);
|
||||
}
|
||||
|
||||
return $users;
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user