public function setRoodId()
 {
     if ($this->User->isAdmin) {
         return;
     }
     $arrRoot = array();
     if (is_array($this->User->finanzen_archiv) && $this->User->inherit != 'group') {
         $arrRoot = array_merge($arrRoot, $this->User->finanzen_archiv);
     }
     if ($this->User->inherit != 'custom') {
         foreach ($this->User->groups as $intGroup) {
             print $intGroup;
             $objGroup = \UserGroupModel::findByPk($intGroup);
             if ($objGroup) {
                 //@FIXME Group nicht von Haste abgeleitet!!!!!
                 $objFinanzenArchiv = $objGroup->getRelated('finanzen_archiv');
                 var_dump($objFinanzenArchiv);
                 if ($objFinanzenArchiv) {
                     while ($objFinanzenArchiv->next()) {
                         $arrRoot[] = $objFinanzenArchiv->id;
                         var_dump($objFinanzenArchiv);
                     }
                 }
             }
         }
     }
     var_dump($arrRoot);
     $GLOBALS['TL_DCA']['tl_finanzen_archiv']['list']['sorting']['root'] = array_unique($arrRoot);
     if (!$this->User->isAdmin) {
         unset($GLOBALS['TL_DCA']['tl_finanzen_archiv']['list']['global_operations']['all']);
         unset($GLOBALS['TL_DCA']['tl_finanzen_archiv']['list']['operations']['editheader']);
         unset($GLOBALS['TL_DCA']['tl_finanzen_archiv']['list']['operations']['delete']);
         $GLOBALS['TL_DCA']['tl_finanzen_archiv']['config']['closed'] = true;
     }
 }
 /**
  * Check permissions to edit table tl_photoalbums2_archive
  */
 public function checkPermission()
 {
     if ($this->User->isAdmin) {
         return;
     }
     // Set root IDs
     if (!is_array($this->User->photoalbums2s) || empty($this->User->photoalbums2s)) {
         $root = array(0);
     } else {
         $root = $this->User->photoalbums2s;
     }
     $GLOBALS['TL_DCA']['tl_photoalbums2_archive']['list']['sorting']['root'] = $root;
     // Check permissions to add archives
     if (!$this->User->hasAccess('create', 'photoalbums2p')) {
         $GLOBALS['TL_DCA']['tl_photoalbums2_archive']['config']['closed'] = true;
     }
     // Check current action
     switch ($this->Input->get('act')) {
         case 'create':
         case 'select':
             // Allow
             break;
         case 'edit':
             // Dynamically add the record to the user profile
             if (!in_array($this->Input->get('id'), $root)) {
                 $arrNew = $this->Session->get('new_records');
                 if (is_array($arrNew['tl_photoalbums2_archive']) && in_array($this->Input->get('id'), $arrNew['tl_photoalbums2_archive'])) {
                     // Add permissions on user level
                     if ($this->User->inherit == 'custom' || !$this->User->groups[0]) {
                         $objUser = \UserModel::findByPk($this->User->id);
                         $arrPhotoalbums2p = deserialize($objUser->photoalbums2p);
                         if (is_array($arrPhotoalbums2p) && in_array('create', $arrPhotoalbums2p)) {
                             $arrPhotoalbums2s = deserialize($objUser->photoalbums2s);
                             $arrPhotoalbums2s[] = $this->Input->get('id');
                             $objUser->photoalbums2s = serialize($arrPhotoalbums2s);
                             $objUser->save();
                         }
                     } elseif ($this->User->groups[0] > 0) {
                         $objGroup = \UserGroupModel::findByPk($this->User->groups[0]);
                         $arrPhotoalbums2p = deserialize($objGroup->photoalbums2p);
                         if (is_array($arrPhotoalbums2p) && in_array('create', $arrPhotoalbums2p)) {
                             $arrPhotoalbums2s = deserialize($objGroup->photoalbums2s);
                             $arrPhotoalbums2s[] = $this->Input->get('id');
                             $objGroup->photoalbums2s = serialize($arrPhotoalbums2s);
                             $objGroup->save();
                         }
                     }
                     // Add new element to the user object
                     $root[] = $this->Input->get('id');
                     $this->User->photoalbums2s = $root;
                 }
             }
             // No break;
         // No break;
         case 'copy':
         case 'delete':
         case 'show':
             if (!in_array($this->Input->get('id'), $root) || $this->Input->get('act') == 'delete' && !$this->User->hasAccess('delete', 'photoalbums2p')) {
                 $this->log('Not enough permissions to ' . $this->Input->get('act') . ' photoalbums2 archive ID "' . $this->Input->get('id') . '"', 'tl_photoalbums2_archive checkPermission', TL_ERROR);
                 $this->redirect('contao/main.php?act=error');
             }
             break;
         case 'editAll':
         case 'deleteAll':
         case 'overrideAll':
             $session = $this->Session->getData();
             if ($this->Input->get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'photoalbums2p')) {
                 $session['CURRENT']['IDS'] = array();
             } else {
                 $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root);
             }
             $this->Session->setData($session);
             break;
         default:
             if (strlen($this->Input->get('act'))) {
                 $this->log('Not enough permissions to ' . $this->Input->get('act') . ' photoalbums2 archives', 'tl_photoalbums2_archive checkPermission', TL_ERROR);
                 $this->redirect('contao/main.php?act=error');
             }
             break;
     }
 }