Factorisation des hacks dans l'optique d'une ferme de wiki
darcs-hash:20061209174936-9e428-6bfb1f8a82f742f51f28a46e459fe9a2ba70b27a.gz
This commit is contained in:
parent
6fb59f5a0f
commit
1b449c891f
3 changed files with 26 additions and 47 deletions
|
@ -124,8 +124,8 @@ class RequestBase:
|
||||||
if self.cfg.theme_force:
|
if self.cfg.theme_force:
|
||||||
theme_name = self.cfg.theme_default
|
theme_name = self.cfg.theme_default
|
||||||
#### DEBUT HACK : Utilisation d'un thème différent pour www.crans.org
|
#### DEBUT HACK : Utilisation d'un thème différent pour www.crans.org
|
||||||
if self.remote_addr == '138.231.136.3':
|
if self.remote_addr in self.cfg.ip_theme.keys():
|
||||||
theme_name = self.cfg.theme_www
|
theme_name = self.cfg.ip_theme[self.remote_addr]
|
||||||
#### FIN DU HACK
|
#### FIN DU HACK
|
||||||
else:
|
else:
|
||||||
theme_name = self.user.theme_name
|
theme_name = self.user.theme_name
|
||||||
|
@ -936,8 +936,8 @@ space between words. Group page name is not allowed.""") % self.user.name
|
||||||
url = self.getQualifiedURL(url)
|
url = self.getQualifiedURL(url)
|
||||||
|
|
||||||
#### DEBUT HACK : pour le www, on redirige vers du www
|
#### DEBUT HACK : pour le www, on redirige vers du www
|
||||||
if self.remote_addr == '138.231.136.3':
|
if self.remote_addr in self.cfg.ip_url_replace.keys():
|
||||||
url = url.replace('http://wiki','http://www')
|
url = url.replace(self.cfg.ip_url_replace[self.remote_addr][0],self.cfg.ip-url_replace[self.remote_addr][1])
|
||||||
#### FIN DU HACK
|
#### FIN DU HACK
|
||||||
|
|
||||||
self.http_headers(["Status: 302", "Location: %s" % url])
|
self.http_headers(["Status: 302", "Location: %s" % url])
|
||||||
|
|
|
@ -174,11 +174,8 @@ space between words. Group page name is not allowed.""") % wikiutil.escape(theus
|
||||||
newuser = 0
|
newuser = 0
|
||||||
|
|
||||||
#### HACK SAUVAGE
|
#### HACK SAUVAGE
|
||||||
import sys
|
|
||||||
sys.path.append('/usr/scripts/gestion/')
|
|
||||||
from iptools import is_crans
|
|
||||||
|
|
||||||
if newuser and not is_crans(self.request.remote_addr):
|
if newuser and not self.cfg.ip_autorised_create_account(self.request.remote_addr):
|
||||||
return _(u"""Création de compte impossible.
|
return _(u"""Création de compte impossible.
|
||||||
Pour des raisons de sécurité, la fonction de création d'un compte n'est
|
Pour des raisons de sécurité, la fonction de création d'un compte n'est
|
||||||
possible que depuis la zone CRANS.
|
possible que depuis la zone CRANS.
|
||||||
|
|
|
@ -119,7 +119,7 @@ class AccessControlList:
|
||||||
|
|
||||||
#special_users = ["All", "Known", "Trusted"]
|
#special_users = ["All", "Known", "Trusted"]
|
||||||
#### HACK SAUVAGE 2/4
|
#### HACK SAUVAGE 2/4
|
||||||
special_users = ["All", "Known", "Trusted", "Crans", "NoCrans"]
|
special_users = ["All", "Known", "Trusted", "Conf"]
|
||||||
#### FIN DU HACK 2/4
|
#### FIN DU HACK 2/4
|
||||||
|
|
||||||
def __init__(self, request, lines=[]):
|
def __init__(self, request, lines=[]):
|
||||||
|
@ -226,7 +226,7 @@ class AccessControlList:
|
||||||
return ''.join(["%s%s%s" % (b,l,e) for l in self.acl_lines])
|
return ''.join(["%s%s%s" % (b,l,e) for l in self.acl_lines])
|
||||||
|
|
||||||
def _special_All(self, request, name, dowhat, rightsdict):
|
def _special_All(self, request, name, dowhat, rightsdict):
|
||||||
if dowhat == "read" and is_page_public(request):
|
if dowhat == "read" and self.is_page_public(request):
|
||||||
return True
|
return True
|
||||||
return rightsdict.get(dowhat)
|
return rightsdict.get(dowhat)
|
||||||
|
|
||||||
|
@ -240,27 +240,8 @@ class AccessControlList:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
#### HACK SAUVAGE 3/4
|
#### HACK SAUVAGE 3/4
|
||||||
def _requete_interne(self, request):
|
def _special_Conf(self, request, name, dowhat, rightsdict):
|
||||||
try:
|
return self.cfg.acl_request(self, request, name, dowhat, rightsdict)
|
||||||
if str(request.__class__)=='MoinMoin.request.RequestCLI' or is_crans(request.remote_addr) and (request.remote_addr != u'138.231.136.3' or is_crans(request.mpyreq.headers_in['X-Forwarded-For'].split(",")[-1].strip())):
|
|
||||||
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 Du HACK 3/4
|
#### FIN Du HACK 3/4
|
||||||
|
|
||||||
def _special_Trusted(self, request, name, dowhat, rightsdict):
|
def _special_Trusted(self, request, name, dowhat, rightsdict):
|
||||||
|
@ -277,6 +258,22 @@ class AccessControlList:
|
||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return self.acl_lines != other.acl_lines
|
return self.acl_lines != other.acl_lines
|
||||||
|
|
||||||
|
#### HACK SAUVAGE 4/4
|
||||||
|
def is_page_public(self,request):
|
||||||
|
## On recherche si la page est publique
|
||||||
|
if not request.page:
|
||||||
|
return False
|
||||||
|
this_page = request.page.page_name
|
||||||
|
query = search.QueryParser().parse_query(u'CatégoriePagePublique')
|
||||||
|
page = search.Page(request, this_page)
|
||||||
|
result = query.search(page)
|
||||||
|
if result:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
#### FIN DU HACK 4/4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ACLStringIterator:
|
class ACLStringIterator:
|
||||||
""" Iterator for acl string
|
""" Iterator for acl string
|
||||||
|
@ -392,18 +389,3 @@ def parseACL(request, body):
|
||||||
acl_lines.append(args)
|
acl_lines.append(args)
|
||||||
return AccessControlList(request, acl_lines)
|
return AccessControlList(request, acl_lines)
|
||||||
|
|
||||||
#### HACK SAUVAGE 4/4
|
|
||||||
def is_page_public(request):
|
|
||||||
#return True
|
|
||||||
## On recherche si la page est publique
|
|
||||||
if not request.page:
|
|
||||||
return False
|
|
||||||
this_page = request.page.page_name
|
|
||||||
query = search.QueryParser().parse_query(u'CatégoriePagePublique')
|
|
||||||
page = search.Page(request, this_page)
|
|
||||||
result = query.search(page)
|
|
||||||
if result:
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
return False
|
|
||||||
#### FIn DU HACK 4/4
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue