protected function _getRoleField() { $acl = Kwf_Registry::get('acl'); $userRole = Kwf_Registry::get('userModel')->getAuthedUserRole(); $authedUser = Kwf_Registry::get('userModel')->getAuthedUser(); // alle erlaubten haupt-rollen in variable $roles = array(); foreach ($acl->getAllowedEditRolesByRole($userRole) as $role) { $roles[$role->getRoleId()] = Kwf_Trl::getInstance()->trlStaticExecute($role->getRoleName()); } if (!$roles) { return null; } // ALLE additional roles in variable $addRoles = array(); foreach ($acl->getAdditionalRoles() as $role) { $addRoles[$role->getParentRoleId()][$role->getRoleId()] = Kwf_Trl::getInstance()->trlStaticExecute($role->getRoleName()); } // Wenns keine additionalRoles gibt, normales select verwenden if (!$addRoles) { $ret = new Kwf_Form_Field_Select('role', trlKwf('Rights')); $ret->setValues($roles)->setAllowBlank(false); } else { // eigene additionalRoles holen, nur die dürfen zugewiesen werden $allowedRoles = array_merge($authedUser->getAdditionalRoles(), $acl->getAllowedEditResourceRoleIdsByRole($userRole)); // cards container erstellen und zu form hinzufügen $ret = new Kwf_Form_Container_Cards('role', trlKwf('Rights')); $ret->getCombobox()->setAllowBlank(false); foreach ($roles as $roleId => $roleName) { $card = $ret->add(); $card->setTitle($roleName); $card->setName($roleId); if (isset($addRoles[$roleId])) { foreach ($addRoles[$roleId] as $addRoleId => $addRoleName) { if (!in_array($addRoleId, $allowedRoles)) { unset($addRoles[$roleId][$addRoleId]); } } $editor = new Kwf_Form_Field_MultiCheckboxLegacy('Kwf_User_AdditionalRoles', trlKwf('Additional rights')); $editor->setColumnName('additional_role')->setValues($addRoles[$roleId])->setReferences(array('columns' => array('user_id'), 'refColumns' => array('id'))); $card->add($editor); } } } return $ret; }
public function __construct($tableName = null, $title = null) { parent::__construct($tableName, $title); }