register_hook('AUTH_LOGIN_CHECK', 'AFTER', $this, 'handle_post_login'); } public function handle_post_login(Doku_Event &$event, $param) { global $conf; global $USERINFO; // If authentication failed if(!$event->result) // Handle settings for ALL users (non logged in) $this->disablebygroupids(array('ALL')); return; // Handle settings for logged in users $this->disablebygroupids($USERINFO['grps']); } private function disablebygroupids($groupids) { global $conf; // Check denyactionsbygroup to see if the user is in any matching group $actionsbygroup = explode(';',$this->getConf('disableactionsbygroup')); foreach($actionsbygroup as $groupandactions) { list($group, $action) = explode(":", $groupandactions); foreach((array)$groupids as $membergroup) { if($membergroup == $group) { $conf['disableactions'] = $action; break 2; } } } } } // vim:ts=4:sw=4:et: