~ubuntu-branches/ubuntu/oneiric/moin/oneiric-security

« back to all changes in this revision

Viewing changes to debian/patches/00853_despam_editor_grouping.patch

  • Committer: Bazaar Package Importer
  • Author(s): Emanuele Gentili
  • Date: 2008-02-21 02:22:30 UTC
  • mfrom: (0.7.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080221022230-qkjhbal8d1cwhol7
Tags: 1.5.8-5.1ubuntu1
* Merge with Debian (LP: #193869); remaining changes:
  - Suggest python-xml (needed for DocBook rendering). LP: #31728.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# HG changeset patch
 
2
# User Thomas Waldmann <tw AT waldmann-edv DOT de>
 
3
# Date 1200688823 -3600
 
4
# Node ID dbe95b27954adcb135e392ff1f9c883d0cfb7dc6
 
5
# Parent  ca98a59c590262c1a7cad51be6af1dfa40e605fe
 
6
fixed Despam action: editor grouping was broken, increase time interval to 30d
 
7
 
 
8
diff -r ca98a59c5902 -r dbe95b27954a MoinMoin/action/Despam.py
 
9
--- a/MoinMoin/action/Despam.py Fri Oct 26 09:15:18 2007 +0200
 
10
+++ b/MoinMoin/action/Despam.py Fri Jan 18 21:40:23 2008 +0100
 
11
@@ -8,6 +8,8 @@
 
12
     @license: GNU GPL, see COPYING for details.
 
13
 """
 
14
 
 
15
+DAYS = 30 # we look for spam edits in the last x days
 
16
+
 
17
 import time
 
18
 
 
19
 from MoinMoin.logfile import editlog
 
20
@@ -16,6 +18,20 @@ from MoinMoin import wikiutil, Page, Pag
 
21
 from MoinMoin import wikiutil, Page, PageEditor
 
22
 from MoinMoin.macro import RecentChanges
 
23
 from MoinMoin.formatter.text_html import Formatter
 
24
+
 
25
+def render(editor_tuple):
 
26
+    etype, evalue = editor_tuple
 
27
+    if etype == 'ip':
 
28
+        ret = evalue
 
29
+    elif etype == 'interwiki':
 
30
+        ewiki, euser = evalue
 
31
+        if ewiki == 'Self':
 
32
+            ret = euser
 
33
+        else:
 
34
+            ret = '%s:%s' % evalue
 
35
+    else:
 
36
+        ret = repr(editor_tuple)
 
37
+    return ret
 
38
 
 
39
 def show_editors(request, pagename, timestamp):
 
40
     _ =  request.getText
 
41
@@ -31,13 +47,14 @@ def show_editors(request, pagename, time
 
42
         if not request.user.may.read(line.pagename):
 
43
             continue
 
44
         
 
45
-        editor = line.getEditor(request)
 
46
+        editor = line.getInterwikiEditorData(request)
 
47
         if not line.pagename in pages:
 
48
             pages[line.pagename] = 1
 
49
             editors[editor] = editors.get(editor, 0) + 1
 
50
             
 
51
-    editors = [(nr, editor) for editor, nr in editors.iteritems()]
 
52
+    editors = [(nr, editor) for editor, nr in editors.items()]
 
53
     editors.sort()
 
54
+    editors.reverse()
 
55
 
 
56
     pg = Page.Page(request, pagename)
 
57
 
 
58
@@ -46,7 +63,7 @@ def show_editors(request, pagename, time
 
59
                        Column('pages', label=_("Pages"), align='right'),
 
60
                        Column('link', label='', align='left')]
 
61
     for nr, editor in editors:
 
62
-        dataset.addRow((editor, unicode(nr), pg.link_to(request, text=_("Select Author"), querystr="action=Despam&editor=%s" % wikiutil.url_quote_plus(editor))))
 
63
+        dataset.addRow((render(editor), unicode(nr), pg.link_to(request, text=_("Select Author"), querystr="action=Despam&editor=%s" % wikiutil.url_quote_plus(repr(editor)))))
 
64
     
 
65
     table = DataBrowserWidget(request)
 
66
     table.setData(dataset)
 
67
@@ -77,7 +94,7 @@ def show_pages(request, pagename, editor
 
68
 
 
69
         if not line.pagename in pages:
 
70
             pages[line.pagename] = 1
 
71
-            if line.getEditor(request) == editor:
 
72
+            if repr(line.getInterwikiEditorData(request)) == editor:
 
73
                 line.time_tuple = request.user.getTime(wikiutil.version2timestamp(line.ed_time_usecs))
 
74
                 request.write(RecentChanges.format_page_edits(macro, [line], timestamp))
 
75
 
 
76
@@ -104,10 +121,10 @@ def revert_page(request, pagename, edito
 
77
     for line in log.reverse():
 
78
         if first:
 
79
             first = False
 
80
-            if line.getEditor(request) != editor:
 
81
+            if repr(line.getInterwikiEditorData(request)) != editor:
 
82
                 return
 
83
         else:
 
84
-            if line.getEditor(request) != editor:
 
85
+            if repr(line.getInterwikiEditorData(request)) != editor:
 
86
                 rev = line.rev
 
87
                 break
 
88
 
 
89
@@ -144,17 +161,17 @@ def revert_pages(request, editor, timest
 
90
 
 
91
         if not line.pagename in pages:
 
92
             pages[line.pagename] = 1
 
93
-            if line.getEditor(request) == editor:
 
94
+            if repr(line.getInterwikiEditorData(request)) == editor:
 
95
                 revertpages.append(line.pagename)
 
96
 
 
97
-    request.write("Debug: Pages to revert:<br>%s" % "<br>".join(revertpages))
 
98
+    request.write("Pages to revert:<br>%s" % "<br>".join(revertpages))
 
99
     for pagename in revertpages:
 
100
-        request.write("Debug: Begin reverting %s ...<br>" % pagename)
 
101
+        request.write("Begin reverting %s ...<br>" % pagename)
 
102
         msg = revert_page(request, pagename, editor)
 
103
         if msg:
 
104
             request.write("<p>%s: %s</p>" % (
 
105
                 Page.Page(request, pagename).link_to(request), msg))
 
106
-        request.write("Debug: Finished reverting %s.<br>" % pagename)
 
107
+        request.write("Finished reverting %s.<br>" % pagename)
 
108
 
 
109
 def execute(pagename, request):
 
110
     _ = request.getText
 
111
@@ -166,7 +183,7 @@ def execute(pagename, request):
 
112
             msg = _('You are not allowed to use this action.'))
 
113
 
 
114
     editor = request.form.get('editor', [None])[0]
 
115
-    timestamp = time.time() - 24 * 3600
 
116
+    timestamp = time.time() - DAYS * 24 * 3600
 
117
        # request.form.get('timestamp', [None])[0]
 
118
     ok = request.form.get('ok', [0])[0]
 
119
 
 
120
diff -r ca98a59c5902 -r dbe95b27954a docs/CHANGES
 
121
--- a/docs/CHANGES      Fri Oct 26 09:15:18 2007 +0200
 
122
+++ b/docs/CHANGES      Fri Jan 18 21:40:23 2008 +0100
 
123
@@ -41,6 +41,8 @@ Version 1.5.current:
 
124
     * Fix "Toggle line numbers" link in code areas, so it gets translated
 
125
       for the current user's language.
 
126
     * added missing data/plugin/converter package
 
127
+    * Fixed Despam action (same editor grouping was broken), now looking for
 
128
+      spam edits in the last 30 days.
 
129
 
 
130
 Version 1.5.8:
 
131
   New features: