[TYPO3-english] Using fe_user usergroup information as variable in TYPO3 extbase action

Markus Philipp factsheet at gmx.de
Thu May 19 21:07:05 CEST 2016


I'm fetching data from a seperate database into a TYPO3 extbase action and render it as json via typnum. It works fine. But now I would like to have instead of a fix 'WHERE account_id = 1' a flexible variable depending on the fe_user usergroup information of the user which is currently logged in. More specific, I would like to have the 'usergroup' information of the currently logged in fe_user as variable in the SQL WHERE condition. Is this possible?    
I know that with ... 

    /**
	* User Repository
	*
	* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
	* @inject
	*/
	protected $userRepository;

.. I can access the $userRepository and with ... 

	$userObject = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['usergroup']);
	$this->view->assign('fe_user_usergroup_uid', $userObject);
	
.. I can render the usergroup into the view. 	

The result of the above is attaches 'TYPO3\CMS\Extbase\Domain\Model\FrontendUser:' in front of the usergroup info at the moment though. So the view result ist 

TYPO3\CMS\Extbase\Domain\Model\FrontendUser:1

How should the Controller exactly look like if it is possible? As of right now it's like: 

JSONController.php : 

<?php
namespace Vendor\Extension\Controller;

/**
 * JSONController
 */
class JSONController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

    /**
     * @var string
     */
    protected $defaultViewObjectName = 'TYPO3\CMS\Extbase\Mvc\View\JsonView';
    
    
    /**
	* User Repository
	*
	* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
	* @inject
	*/
	protected $userRepository;
    
     
    /**
     * action dashboard
     *
     * @return string
     */
    public function dashboardAction() {

	$link = mysql_connect( 'host', 'user', 'password' );

	$db = mysql_select_db( 'database', $link );

	$query = "SELECT entity_status, count(*) 
		FROM accounts
		WHERE account_id = 1 
		GROUP BY entity_status 
		ORDER BY count(*) DESC";
	$result = mysql_query( $query );
	$data = array();
	while ( $row = mysql_fetch_assoc( $result ) ) {
		$data[] = $row;
	}
	
	return json_encode( $data );

	mysql_close($link);
	
    }       
        
}
?>


More information about the TYPO3-english mailing list