$lstRead = new CListBox('right_to_del[read_only][]', null, 20);
$lstDeny = new CListBox('right_to_del[deny][]', null, 20);
foreach ($this->data['group_rights'] as $id => $rights) {
    if ($rights['permission'] == PERM_DENY) {
        $lstDeny->addItem($id, $rights['name']);
    } elseif ($rights['permission'] == PERM_READ) {
        $lstRead->addItem($id, $rights['name']);
    } elseif ($rights['permission'] == PERM_READ_WRITE) {
        $lstWrite->addItem($id, $rights['name']);
    }
}
$permissionsTable->addRow(array(new CCol($lstWrite, 'read_write'), new CCol($lstRead, 'read_only'), new CCol($lstDeny, 'deny')));
$permissionsTable->addRow(array(array(new CButton('add_read_write', _('Add'), "return PopUp('popup_right.php?dstfrm=" . $userGroupForm->getName() . '&permission=' . PERM_READ_WRITE . "', 450, 450);", 'formlist'), new CSubmit('del_read_write', _('Delete selected'), null, 'formlist')), array(new CButton('add_read_only', _('Add'), "return PopUp('popup_right.php?dstfrm=" . $userGroupForm->getName() . '&permission=' . PERM_READ . "', 450, 450);", 'formlist'), new CSubmit('del_read_only', _('Delete selected'), null, 'formlist')), array(new CButton('add_deny', _('Add'), "return PopUp('popup_right.php?dstfrm=" . $userGroupForm->getName() . '&permission=' . PERM_DENY . "', 450, 450);", 'formlist'), new CSubmit('del_deny', _('Delete selected'), null, 'formlist'))));
$permissionsFormList->addRow(_('Composing permissions'), $permissionsTable);
$permissionsFormList->addRow(_('Calculated permissions'), '');
$permissionsFormList = getPermissionsFormList($this->data['group_rights'], null, $permissionsFormList);
// append form lists to tab
$userGroupTab = new CTabView();
if (!$this->data['form_refresh']) {
    $userGroupTab->setSelected(0);
}
$userGroupTab->addTab('userGroupTab', _('User group'), $userGroupFormList);
$userGroupTab->addTab('permissionsTab', _('Permissions'), $permissionsFormList);
// append tab to form
$userGroupForm->addItem($userGroupTab);
// append buttons to form
if (isset($this->data['usrgrpid'])) {
    $userGroupForm->addItem(makeFormFooter(new CSubmit('update', _('Update')), array(new CButtonDelete(_('Delete selected group?'), url_param('form') . url_param('usrgrpid') . url_param('config')), new CButtonCancel(url_param('config')))));
} else {
    $userGroupForm->addItem(makeFormFooter(new CSubmit('add', _('Add')), new CButtonCancel(url_param('config'))));
}
    /*
     * Permissions tab
     */
    $permissionsFormList = new CFormList('permissionsFormList');
    $userTypeComboBox = new CComboBox('user_type', $this->data['user_type'], 'submit();');
    $userTypeComboBox->addItem(USER_TYPE_ZABBIX_USER, user_type2str(USER_TYPE_ZABBIX_USER));
    $userTypeComboBox->addItem(USER_TYPE_ZABBIX_ADMIN, user_type2str(USER_TYPE_ZABBIX_ADMIN));
    $userTypeComboBox->addItem(USER_TYPE_SUPER_ADMIN, user_type2str(USER_TYPE_SUPER_ADMIN));
    if (isset($this->data['userid']) && bccomp(CWebUser::$data['userid'], $this->data['userid']) == 0) {
        $userTypeComboBox->setEnabled('disabled');
        $permissionsFormList->addRow(_('User type'), array($userTypeComboBox, SPACE, new CSpan(_('User can\'t change type for himself'))));
        $userForm->addVar('user_type', $this->data['user_type']);
    } else {
        $permissionsFormList->addRow(_('User type'), $userTypeComboBox);
    }
    $permissionsFormList = getPermissionsFormList($this->data['user_rights'], $this->data['user_type'], $permissionsFormList);
    $permissionsFormList->addInfo(_('Permissions can be assigned for user groups only.'));
    $userTab->addTab('permissionsTab', _('Permissions'), $permissionsFormList);
}
if (isset($userMessagingFormList)) {
    $userTab->addTab('messagingTab', _('Messaging'), $userMessagingFormList);
}
// append tab to form
$userForm->addItem($userTab);
// append buttons to form
if (isset($this->data['userid'])) {
    if ($this->data['is_profile']) {
        $deleteButton = null;
    } else {
        $deleteButton = new CButtonDelete(_('Delete selected user?'), url_param('form') . url_param('userid') . url_param('config'));
        if (bccomp(CWebUser::$data['userid'], $this->data['userid']) == 0) {