*/ class Group extends \Magento\Eav\Model\Entity\Attribute\Source\Table implements GroupSourceLoggedInOnlyInterface { /** * @var GroupManagementInterface */ protected $_groupManagement; /** * @var \Magento\Framework\Convert\DataObject */ protected $_converter; /** * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\Option\CollectionFactory $attrOptionCollectionFactory * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute\OptionFactory $attrOptionFactory * @param GroupManagementInterface $groupManagement * @param \Magento\Framework\Convert\DataObject $converter */ public function __construct( \Magento\Eav\Model\ResourceModel\Entity\Attribute\Option\CollectionFactory $attrOptionCollectionFactory, \Magento\Eav\Model\ResourceModel\Entity\Attribute\OptionFactory $attrOptionFactory, GroupManagementInterface $groupManagement, \Magento\Framework\Convert\DataObject $converter ) { $this->_groupManagement = $groupManagement; $this->_converter = $converter; parent::__construct($attrOptionCollectionFactory, $attrOptionFactory); } /** * @inheritdoc */ public function getAllOptions($withEmpty = true, $defaultValues = false) { if (!$this->_options) { $groups = $this->_groupManagement->getLoggedInGroups(); $this->_options = $this->_converter->toOptionArray($groups, 'id', 'code'); } return $this->_options; } }