]> git.ipfire.org Git - ipfire.org.git/commitdiff
wiki: Save IP address of an edit
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Nov 2018 20:17:03 +0000 (20:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Nov 2018 20:17:03 +0000 (20:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/wiki.py
src/web/wiki.py

index 00dd64be5fb559dc5de9e3e83e10b800ce58c369..493837ccc8d0564f3a458377652acf174490c782 100644 (file)
@@ -56,19 +56,19 @@ class Wiki(misc.Object):
                        WHERE timestamp >= NOW() - INTERVAL '4 weeks' \
                        ORDER BY timestamp DESC LIMIT %s", limit)
 
-       def create_page(self, page, author, content, changes=None):
+       def create_page(self, page, author, content, changes=None, address=None):
                page = Page.sanitise_page_name(page)
 
-               return self._get_page("INSERT INTO wiki(page, author_uid, markdown, changes) \
-                       VALUES(%s, %s, %s, %s) RETURNING *", page, author.uid, content, changes)
+               return self._get_page("INSERT INTO wiki(page, author_uid, markdown, changes, address) \
+                       VALUES(%s, %s, %s, %s, %s) RETURNING *", page, author.uid, content, changes, address)
 
-       def delete_page(self, page, author):
+       def delete_page(self, page, author, **kwargs):
                # Do nothing if the page does not exist
                if not self.get_page(page):
                        return
 
                # Just creates a blank last version of the page
-               self.create_page(page, author, None)
+               self.create_page(page, author=author, content=None, **kwargs)
 
        @staticmethod
        def _split_url(url):
index 0fa9ba5e3b1d265ea63796f6e37fd3ba0fcd4b5d..58ee3c5697831bc7c23861c534052e26ddcd80fb 100644 (file)
@@ -47,16 +47,15 @@ class PageHandler(auth.CacheMixin, base.BaseHandler):
                self.render("wiki/page.html", page=page, latest_revision=latest_revision)
 
        @tornado.web.authenticated
-       def post(self):
-               page = self.get_argument("page")
-
+       def post(self, page):
                content = self.get_argument("content", None)
                changes = self.get_argument("changes")
 
                # Delete the page if content is empty
                if not content:
                        with self.db.transaction():
-                               self.backend.wiki.delete_page(page, self.current_user)
+                               self.backend.wiki.delete_page(page, self.current_user,
+                                       address=self.get_remote_ip())
 
                        self.redirect("/")
                        return
@@ -64,7 +63,7 @@ class PageHandler(auth.CacheMixin, base.BaseHandler):
                # Create a new page in the database
                with self.db.transaction():
                        page = self.backend.wiki.create_page(page,
-                               self.current_user, content, changes=changes)
+                               self.current_user, content, changes=changes, address=self.get_remote_ip())
 
                # Redirect
                self.redirect(page.url)