class CControllerUsergroupMassUpdate extends CController {
protected function checkInput() {
'usrgrpids' => 'required|array_db usrgrp.usrgrpid',
'gui_access' => 'db usrgrp.gui_access|in '.implode(',', [GROUP_GUI_ACCESS_SYSTEM, GROUP_GUI_ACCESS_INTERNAL, GROUP_GUI_ACCESS_LDAP, GROUP_GUI_ACCESS_DISABLED]),
'users_status' => 'db usrgrp.users_status|in '.GROUP_STATUS_ENABLED.','.GROUP_STATUS_DISABLED,
'debug_mode' => 'db usrgrp.debug_mode|in '.GROUP_DEBUG_MODE_ENABLED.','.GROUP_DEBUG_MODE_DISABLED
$ret = $this->validateInput($fields);
$this->setResponse(new CControllerResponseFatal());
protected function checkPermissions() {
return $this->checkAccess(CRoleHelper::UI_ADMINISTRATION_USER_GROUPS);
protected function doAction() {
$this->getInputs($user_group, ['gui_access', 'users_status', 'debug_mode']);
foreach ($this->getInput('usrgrpids') as $usrgrpid) {
$user_groups[] = ['usrgrpid' => $usrgrpid] + $user_group;
$result = (bool) API::UserGroup()->update($user_groups);
$response = new CControllerResponseRedirect((new CUrl('zabbix.php'))
->setArgument('action', 'usergroup.list')
->setArgument('page', CPagerHelper::loadPage('usergroup.list', null))
$updated = count($user_groups);