
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
104 lines
3.8 KiB
Diff
104 lines
3.8 KiB
Diff
--- 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<61>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)
|