Hallo Miteinander
Ich würde gerne in einem selber erstellten Modul die Ausgabe der Backend-Listenansicht so anpassen das jeder Benutzer (bis auf die Admins) nur die Felder sehe, löschen und bearbeiten kann die er selber erstellt hat.
Folgender Forumeintrag habe ich bereits hier gefunden bei mir Contao 4.4 aber nicht wirklich zum laufen gebracht.
https://community.contao.org/de/show...ze-Wie-gemacht
Meine Ausgangslage sieht aktuell folgendermassen aus:
- Feld «author» (wird automatisch mit der User ID befüllt)
- onload_callback im "config" array
- public function "$this->import('BackendUser', 'User');"
- public function "checkPermission"
PHP-Code:
'author' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_standorte']['author'],
'default' => BackendUser::getInstance()->id,
'inputType' => 'text',
'foreignKey' => 'tl_user.name',
'eval' => array('tl_class'=>'w50'),
'sql' => "int(10) unsigned NOT NULL default '0'",
),
PHP-Code:
// Config
'config' => array
(
'dataContainer' => 'Table',
'enableVersioning' => true,
'onload_callback' => array('tl_standort','checkPermission'),
'sql' => array
(
'keys' => array
(
'id' => 'primary'
)
),
),
// List
'list' => array
(
'sorting' => array
(
'mode' => 1,
'fields' => array('betrieb'),
'flag' => 1,
'panelLayout' => 'filter;sort,search,limit',
),
'label' => array
(
'fields' => array('ort'),
'format' => '%s',
),
'global_operations' => array
(
'all' => array
(
'label' => &$GLOBALS['TL_LANG']['MSC']['all'],
'href' => 'act=select',
'class' => 'header_edit_all',
'attributes' => 'onclick="Backend.getScrollOffset()" accesskey="e"'
)
),
PHP-Code:
public function __construct()
{
parent::__construct();
$this->import('BackendUser', 'User');
}
public function checkPermission()
{
$authorID = $dc->activeRecord->author;
// if not admin, only list data-records of this author
if ($this->User->isAdmin)
{
return;
}
else
{
}
}
Aktuell habe ich es mit der Funktion aus dem Link oben versucht, ohne Erfolg, die Liste wird nach wie vor für Admins wie auch für andere Benutzer gleich (komplett) ausgegeben.
LÖSUNG:
- onload_callback im "config" array
PHP-Code:
class tl_function extends Backend
{
public function __construct()
{
$this->import('BackendUser', 'User');
parent::__construct();
$this->User->authenticate();
}
public function checkPermission($dc)
{
$objUser = BackendUser::getInstance();
if(!$objUser->isAdmin)
{
$GLOBALS['TL_DCA']['tl_table']['list']['sorting']['filter'][] = array('betrieb = ?', $objUser->id);
}
}
}
Lesezeichen