canDo('logout')) throw new ActionDisabledException(); } /** @inheritdoc */ public function preProcess() { global $ID; global $INPUT; if (!checkSecurityToken()) throw new ActionException(); // when logging out during an edit session, unlock the page $lockedby = checklock($ID); if ($lockedby == $INPUT->server->str('REMOTE_USER')) { unlock($ID); } // do the logout stuff and redirect to login auth_logoff(); send_redirect(wl($ID, ['do' => 'login'], true, '&')); // should never be reached throw new ActionException('login'); } }