[wiki/patches] patches pour lee moinmoin du crans
Ces patches sont pour la version 1.9.2 de moinmoin Pour le moinmoin du crans, récupérer les ressources statiques dans git et appliquer les patches Actuellement, on est encore sur le paquet custom du crans, mais avec les ressources statiques du git. On migrera sans doute un peu avant squeeze ? darcs-hash:20100908115755-bd074-f9fb78bcf8e62e8cee632acffe65b6d0d83907ab.gz
This commit is contained in:
parent
9f7e6d38a6
commit
a7a85ff7ec
4 changed files with 255 additions and 0 deletions
32
wiki/patches/moin-changes-show-hostname.patch
Normal file
32
wiki/patches/moin-changes-show-hostname.patch
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
diff -urN MoinMoin/user.py b/MoinMoin/user.py
|
||||||
|
--- a/MoinMoin/user.py 2008-07-14 21:11:24.000000000 +0200
|
||||||
|
+++ b/MoinMoin/user.py 2009-10-11 01:11:52.000000000 +0200
|
||||||
|
@@ -27,7 +27,9 @@
|
||||||
|
from MoinMoin import config, caching, wikiutil, i18n, events
|
||||||
|
from MoinMoin.util import timefuncs, filesys, random_string
|
||||||
|
from MoinMoin.wikiutil import url_quote_plus
|
||||||
|
-
|
||||||
|
+### HACK SAUVAGE 1/2
|
||||||
|
+import socket
|
||||||
|
+### FIN HACK 1/2
|
||||||
|
|
||||||
|
def getUserList(request):
|
||||||
|
""" Get a list of all (numerical) user IDs.
|
||||||
|
@@ -1023,7 +1025,16 @@
|
||||||
|
if self.name:
|
||||||
|
return self.wikiHomeLink()
|
||||||
|
else:
|
||||||
|
- return self.host()
|
||||||
|
+ ### HACK SAUVAGE 2/2
|
||||||
|
+ # return self.host()
|
||||||
|
+ try:
|
||||||
|
+ hostname = socket.gethostbyaddr(self.host())[0]
|
||||||
|
+ except socket.herror:
|
||||||
|
+ hostname = self.host()
|
||||||
|
+ if (hostname+'.').split('.', 1)[1] in ['crans.org.', 'wifi.crans.org.']:
|
||||||
|
+ hostname = hostname.split('.',1)[0]
|
||||||
|
+ return hostname
|
||||||
|
+ ### FIN HACK 2/2
|
||||||
|
|
||||||
|
def generate_recovery_token(self):
|
||||||
|
key = random_string(64, "abcdefghijklmnopqrstuvwxyz0123456789")
|
88
wiki/patches/moin-more-icons.patch
Normal file
88
wiki/patches/moin-more-icons.patch
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
diff -urN MoinMoin/config/__init__.py b/MoinMoin/config/__init__.py
|
||||||
|
--- a/MoinMoin/config/__init__.py 2008-05-19 20:50:17.000000000 +0200
|
||||||
|
+++ b/MoinMoin/config/__init__.py 2009-11-14 13:39:29.000000000 +0100
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-# -*- coding: iso-8859-1 -*-
|
||||||
|
+# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
MoinMoin - site-wide configuration defaults (NOT per single wiki!)
|
||||||
|
|
||||||
|
@@ -79,5 +79,7 @@
|
||||||
|
'notes',
|
||||||
|
]
|
||||||
|
|
||||||
|
-smileys = (r"X-( :D <:( :o :( :) B) :)) ;) /!\ <!> (!) :-? :\ >:> |) " +
|
||||||
|
- r":-( :-) B-) :-)) ;-) |-) (./) {OK} {X} {i} {1} {2} {3} {*} {o}").split()
|
||||||
|
+smileys = (ur"X-( :D <:( :o :( :) B) :)) ;) /!\ <!> (!) :-? :\ >:> |) " +
|
||||||
|
+ ur":-( :-) B-) :-)) ;-) |-) (./) {OK} {X} {i} {1} {2} {3} {*} {o} "+
|
||||||
|
+ u"{~} {8} {A} {á¹½} " +
|
||||||
|
+ u"{da} {de} {en} {es} {fi} {fr} {it} {ja} {ko} {nl} {pt} {sv} {us} {zh}").split()
|
||||||
|
diff -urN MoinMoin/theme/__init__.py b/MoinMoin/theme/__init__.py
|
||||||
|
--- a/MoinMoin/theme/__init__.py 2008-07-05 22:21:26.000000000 +0200
|
||||||
|
+++ b/MoinMoin/theme/__init__.py 2009-11-14 13:41:01.000000000 +0100
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-# -*- coding: iso-8859-1 -*-
|
||||||
|
+# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
MoinMoin - Theme Package
|
||||||
|
|
||||||
|
@@ -117,6 +117,29 @@
|
||||||
|
# try {*}{*}{o}
|
||||||
|
'{*}': ("{*}", 'star_on.png', 15, 15),
|
||||||
|
'{o}': ("{o}", 'star_off.png', 15, 15),
|
||||||
|
+
|
||||||
|
+ ### HACK SAUVAGE 1/2
|
||||||
|
+ '{8}': ("{8}", 'tux16.png', 16, 16),
|
||||||
|
+ '{~}': ("{~}", 'win16.png', 16, 16),
|
||||||
|
+ u'{á¹½}': (u'{á¹½}', 'vista16.png', 16, 16),
|
||||||
|
+ '{A}': ('{A}', 'apple.png', 16, 16),
|
||||||
|
+
|
||||||
|
+ '{da}': ('{da}', 'flag-da.png', 18, 12),
|
||||||
|
+ '{de}': ('{de}', 'flag-de.png', 18, 12),
|
||||||
|
+ '{en}': ('{en}', 'flag-en.png', 18, 12),
|
||||||
|
+ '{es}': ('{es}', 'flag-es.png', 18, 12),
|
||||||
|
+ '{fi}': ('{fi}', 'flag-fi.png', 18, 12),
|
||||||
|
+ '{fr}': ('{fr}', 'flag-fr.png', 18, 12),
|
||||||
|
+ '{it}': ('{it}', 'flag-it.png', 18, 12),
|
||||||
|
+ '{ja}': ('{ja}', 'flag-ja.png', 18, 12),
|
||||||
|
+ '{ko}': ('{ko}', 'flag-ko.png', 18, 12),
|
||||||
|
+ '{nl}': ('{nl}', 'flag-nl.png', 18, 12),
|
||||||
|
+ '{pt}': ('{pt}', 'flag-pt.png', 18, 12),
|
||||||
|
+ '{sv}': ('{sv}', 'flag-sv.png', 18, 12),
|
||||||
|
+ '{us}': ('{us}', 'flag-us.png', 18, 12),
|
||||||
|
+ '{zh}': ('{zh}', 'flag-zh.png', 18, 12)
|
||||||
|
+ ### FIN HACK 1/2
|
||||||
|
+
|
||||||
|
}
|
||||||
|
del _
|
||||||
|
|
||||||
|
@@ -532,7 +555,9 @@
|
||||||
|
except KeyError, err:
|
||||||
|
alt = 'KeyError: %s' % str(err)
|
||||||
|
alt = self.request.getText(alt)
|
||||||
|
- tag = self.request.formatter.image(src=img, alt=alt, width=w, height=h, **kw)
|
||||||
|
+ #### HACK SAUVAGE 2/2
|
||||||
|
+ tag = self.request.formatter.image(src=img, alt=alt, **kw)
|
||||||
|
+ #### FIN HACK 2/2
|
||||||
|
return tag
|
||||||
|
|
||||||
|
def make_iconlink(self, which, d):
|
||||||
|
@@ -1577,10 +1602,18 @@
|
||||||
|
|
||||||
|
meta_keywords = request.getPragma('keywords')
|
||||||
|
meta_desc = request.getPragma('description')
|
||||||
|
+ meta_scripts = request.getPragma('scripts')
|
||||||
|
+ meta_stylesheets = request.getPragma('stylesheets')
|
||||||
|
if meta_keywords:
|
||||||
|
user_head.append('<meta name="keywords" content="%s">\n' % wikiutil.escape(meta_keywords, 1))
|
||||||
|
if meta_desc:
|
||||||
|
user_head.append('<meta name="description" content="%s">\n' % wikiutil.escape(meta_desc, 1))
|
||||||
|
+ if meta_scripts:
|
||||||
|
+ for meta_script in meta_scripts.split():
|
||||||
|
+ user_head.append('<script type="text/javascript" src="%s"></script>\n' % wikiutil.escape(meta_script, 1))
|
||||||
|
+ if meta_stylesheets:
|
||||||
|
+ for meta_stylesheet in meta_stylesheets.split():
|
||||||
|
+ user_head.append('<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="%s">' % wikiutil.escape(meta_stylesheet, 1))
|
||||||
|
|
||||||
|
# search engine precautions / optimization:
|
||||||
|
# if it is an action or edit/search, send query headers (noindex,nofollow):
|
104
wiki/patches/moin1.9.2-categoriepagepublique.patch
Normal file
104
wiki/patches/moin1.9.2-categoriepagepublique.patch
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
--- a/MoinMoin/security/__init__.py 2010-02-28 16:28:46.000000000 +0100
|
||||||
|
+++ b/MoinMoin/security/__init__.py 2010-06-03 18:10:16.000000000 +0200
|
||||||
|
@@ -24,6 +24,12 @@
|
||||||
|
from MoinMoin import wikiutil, user
|
||||||
|
from MoinMoin.Page import Page
|
||||||
|
|
||||||
|
+### HACK SAUVAGE 1/5
|
||||||
|
+import sys
|
||||||
|
+sys.path.append('/usr/scripts/gestion/')
|
||||||
|
+from iptools import is_crans
|
||||||
|
+### FIN HACK 1/5
|
||||||
|
+
|
||||||
|
#############################################################################
|
||||||
|
### Basic Permissions Interface -- most features enabled by default
|
||||||
|
#############################################################################
|
||||||
|
@@ -251,7 +257,10 @@
|
||||||
|
Default: ["read", "write", "delete", "admin"]
|
||||||
|
'''
|
||||||
|
|
||||||
|
- special_users = ["All", "Known", "Trusted"] # order is important
|
||||||
|
+ #special_users = ["All", "Known", "Trusted"] # order is important
|
||||||
|
+ ### HACK SAUVAGE 2/5
|
||||||
|
+ special_users = ["All", "Known", "Trusted", "Crans", "NoCrans"] # order is important
|
||||||
|
+ ### FIN HACK 2/5
|
||||||
|
|
||||||
|
def __init__(self, cfg, lines=[]):
|
||||||
|
"""Initialize an ACL, starting from <nothing>.
|
||||||
|
@@ -343,6 +352,10 @@
|
||||||
|
return acl_lines
|
||||||
|
|
||||||
|
def _special_All(self, request, name, dowhat, rightsdict):
|
||||||
|
+ ### HACK SAUVAGE 3/5
|
||||||
|
+ if dowhat == "read" and is_page_public(request):
|
||||||
|
+ return True
|
||||||
|
+ ### FIN HACK 3/5
|
||||||
|
return rightsdict.get(dowhat)
|
||||||
|
|
||||||
|
def _special_Known(self, request, name, dowhat, rightsdict):
|
||||||
|
@@ -365,6 +378,29 @@
|
||||||
|
return rightsdict.get(dowhat)
|
||||||
|
return None
|
||||||
|
|
||||||
|
+ ### HACK SAUVAGE 4/5
|
||||||
|
+ def _requete_interne(self, request):
|
||||||
|
+ try:
|
||||||
|
+ if is_crans(request.remote_addr):
|
||||||
|
+ return True
|
||||||
|
+ except:
|
||||||
|
+ pass
|
||||||
|
+
|
||||||
|
+ return False
|
||||||
|
+
|
||||||
|
+ def _special_Crans(self, request, name, dowhat, rightsdict):
|
||||||
|
+ if self._requete_interne(request):
|
||||||
|
+ return rightsdict.get(dowhat)
|
||||||
|
+ return None
|
||||||
|
+
|
||||||
|
+ def _special_NoCrans(self, request, name, dowhat, rightsdict):
|
||||||
|
+ if dowhat == "read" and is_page_public(request):
|
||||||
|
+ return True
|
||||||
|
+ if not self._requete_interne(request):
|
||||||
|
+ return rightsdict.get(dowhat)
|
||||||
|
+ return None
|
||||||
|
+ ### FIN HACK 4/5
|
||||||
|
+
|
||||||
|
def __eq__(self, other):
|
||||||
|
return self.acl_lines == other.acl_lines
|
||||||
|
|
||||||
|
@@ -456,3 +492,9 @@
|
||||||
|
pi, dummy = wikiutil.get_processing_instructions(text)
|
||||||
|
acl_lines = [args for verb, args in pi if verb == 'acl']
|
||||||
|
return AccessControlList(request.cfg, acl_lines)
|
||||||
|
+
|
||||||
|
+### HACK SAUVAGE 5/5
|
||||||
|
+def is_page_public(request):
|
||||||
|
+ ## On recherche si la page est publique
|
||||||
|
+ return u'CatégoriePagePublique' in request.page.getCategories(request)
|
||||||
|
+### FIN HACK 5/5
|
||||||
|
--- a/MoinMoin/Page.py 2010-02-28 16:28:45.000000000 +0100
|
||||||
|
+++ b/MoinMoin/Page.py 2010-06-03 18:07:14.000000000 +0200
|
||||||
|
@@ -1082,8 +1082,10 @@
|
||||||
|
if emit_headers:
|
||||||
|
request.content_type = "%s; charset=%s" % (self.output_mimetype, self.output_charset)
|
||||||
|
if page_exists:
|
||||||
|
- if not request.user.may.read(self.page_name):
|
||||||
|
+ ### HACK SAUVAGE 1/2
|
||||||
|
+ if not request.user.may.read(self.page_name) and not request.mode_getpagelinks:
|
||||||
|
request.status_code = 403
|
||||||
|
+ ### FIN HACK 1/2
|
||||||
|
else:
|
||||||
|
request.status_code = 200
|
||||||
|
if not request.cacheable:
|
||||||
|
@@ -1177,8 +1179,10 @@
|
||||||
|
if not send_special:
|
||||||
|
if not page_exists and not body:
|
||||||
|
special = 'missing'
|
||||||
|
- elif not request.user.may.read(self.page_name):
|
||||||
|
+ ### HACK SAUVAGE 2/2
|
||||||
|
+ elif not request.user.may.read(self.page_name) and not request.mode_getpagelinks:
|
||||||
|
special = 'denied'
|
||||||
|
+ ### FIN HACK 2/2
|
||||||
|
|
||||||
|
# if we have a special page, output it, unless
|
||||||
|
# - we should only output content (this is for say the pagelinks formatter)
|
31
wiki/patches/moin1.9.2-theme-vhost.patch
Normal file
31
wiki/patches/moin1.9.2-theme-vhost.patch
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
--- a/MoinMoin/config/multiconfig.py 2010-04-03 16:28:21.000000000 +0200
|
||||||
|
+++ b/MoinMoin/config/multiconfig.py 2010-06-03 18:27:43.000000000 +0200
|
||||||
|
@@ -855,6 +855,7 @@
|
||||||
|
|
||||||
|
('theme_default', 'modernized',
|
||||||
|
"the name of the theme that is used by default (see HelpOnThemes)"),
|
||||||
|
+ ('theme_vhost', {}, "If a key matches the vhost, forces its value as the theme."),
|
||||||
|
('theme_force', False,
|
||||||
|
"if True, do not allow to change the theme"),
|
||||||
|
|
||||||
|
--- a/MoinMoin/web/contexts.py 2010-06-03 18:29:00.000000000 +0200
|
||||||
|
+++ b/MoinMoin/web/contexts.py 2010-06-03 18:42:47.000000000 +0200
|
||||||
|
@@ -10,7 +10,7 @@
|
||||||
|
|
||||||
|
import time, inspect, StringIO, sys, warnings
|
||||||
|
|
||||||
|
-from werkzeug import Headers, http_date, create_environ, redirect, abort
|
||||||
|
+from werkzeug import Headers, http_date, create_environ, redirect, abort, get_host
|
||||||
|
from werkzeug.exceptions import Unauthorized, NotFound
|
||||||
|
|
||||||
|
from MoinMoin import i18n, error, user, config, wikiutil
|
||||||
|
@@ -184,6 +184,9 @@
|
||||||
|
theme_name = self.cfg.theme_default
|
||||||
|
else:
|
||||||
|
theme_name = self.user.theme_name
|
||||||
|
+ ### HACK SAUVAGE 1/1
|
||||||
|
+ theme_name = self.cfg.theme_vhost.get(get_host(self.environ), theme_name)
|
||||||
|
+ ### FIN HACK 1/1
|
||||||
|
load_theme_fallback(self, theme_name)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue