Re: [Trac] TracSpamFilter - traceback
Jun Omae <[email protected]> Fri, 14 Jun 2024 11:40:40 +0900
| Newsgroups | gmane.comp.version-control.subversion.trac.general |
|---|---|
| Message-ID | <[email protected]> |
Hi,
On 2024/06/14 5:20, 'JP 99' via Trac Users wrote:
> Hi, ubuntu 22.04/trac-1.6/tracspamfilter-1.5.3/accountmanager-0.6.0
>
> Account Policy set to RegistrationFilterAdapter.
>
> Registering a user "test" I get in trac.log:
>
> Trac[filtersystem] ERROR: Filter strategy <Component tracspamfilter.filters.registration.RegistrationFilterStrategy> raised exception: 'Fragment' object has no attribute 'replace'
> Traceback (most recent call last):
> File "/usr/local/lib/python3.10/dist-packages/tracspamfilter/filters/registration.py", line 81, in test
> check.validate_registration(req)
> File "/usr/local/lib/python3.10/dist-packages/acct_mgr/register.py", line 289, in validate_registration
> raise RegistrationError(tag_(
> acct_mgr.register.RegistrationError: Username <b>test</b> doesn't match local naming policy.
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File "/usr/local/lib/python3.10/dist-packages/tracspamfilter/filtersystem.py", line 200, in test
> retval = strategy.test(req, author, content, ip)
> File "/usr/local/lib/python3.10/dist-packages/tracspamfilter/filters/registration.py", line 84, in test
> msg = e.message.replace('\n', '')
> AttributeError: 'Fragment' object has no attribute 'replace'
It seems to be an issue of the spam-filter plugin. Please try the following patch:
Index: tracspamfilter/filters/registration.py
===================================================================
--- tracspamfilter/filters/registration.py (revision 17823)
+++ tracspamfilter/filters/registration.py (working copy)
@@ -16,7 +16,8 @@
from trac.config import BoolOption, IntOption
from trac.core import Component, ExtensionPoint, implements
-from trac.util.html import tag
+from trac.util.html import striptags, tag
+from trac.util.text import to_unicode
from tracspamfilter.api import IFilterStrategy, N_
@@ -81,11 +82,7 @@
check.validate_registration(req)
except RegistrationError as e:
karma -= abs(self.karma_points)
- msg = e.message.replace('\n', '')
- args = e.msg_args
- if args:
- msg = msg % args
- msg.replace('<b>', '*').replace('</b>', '*')
+ msg = striptags(to_unicode(e))
self.log.debug("Registration check returned %s", msg)
checks.append('%s: %s' % (check.__class__.__name__, msg))
except Exception as e:
--
Jun Omae <[email protected]> (大前 潤)
--
You received this message because you are subscribed to the Google Groups "Trac Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trac-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion on the web visit https://groups.google.com/d/msgid/trac-users/f231a8bb-49d1-4a99-9aa3-09595715fc8a%40gmail.com.