public function post_group() { $group = UserGroup::get_by_id($this->handler_vars['id']); $tokens = ACL::all_tokens(); if (isset($this->handler_vars['nonce'])) { $wsse = Utils::WSSE($this->handler_vars['nonce'], $this->handler_vars['timestamp']); if (isset($this->handler_vars['digest']) && $this->handler_vars['digest'] != $wsse['digest']) { Session::error(_t('WSSE authentication failed.')); } if (isset($this->handler_vars['delete'])) { $group->delete(); Utils::redirect(URL::get('display_groups')); } if (isset($this->handler_vars['user'])) { $users = $this->handler_vars['user']; foreach ($users as $user => $status) { if ($status == 1) { $group->add($user); } else { $group->remove($user); } } $access_names = ACL::access_names(); foreach ($tokens as $token) { $bitmask = new Bitmask($access_names); if (isset($this->handler_vars['tokens'][$token->id]['deny'])) { $bitmask->value = 0; $group->deny($token->id); } else { foreach ($access_names as $name) { if (isset($this->handler_vars['tokens'][$token->id][$name])) { $bitmask->{$name} = true; } } if (isset($this->handler_vars['tokens'][$token->id]['full'])) { $bitmask->value = $bitmask->full; } if ($bitmask->value != 0) { $group->grant($token->id, $bitmask); } else { $group->revoke($token->id); } } } } } Session::notice(_t('Updated permissions.'), 'permissions'); Utils::redirect(URL::get('display_group', 'id=' . $group->id)); }