[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