diff --git a/wiki/request.py b/wiki/request.py index 888fadb0..b130d214 100644 --- a/wiki/request.py +++ b/wiki/request.py @@ -124,8 +124,8 @@ class RequestBase: if self.cfg.theme_force: theme_name = self.cfg.theme_default #### DEBUT HACK : Utilisation d'un thème différent pour www.crans.org - if self.remote_addr == '138.231.136.3': - theme_name = self.cfg.theme_www + if self.remote_addr in self.cfg.ip_theme.keys(): + theme_name = self.cfg.ip_theme[self.remote_addr] #### FIN DU HACK else: 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) #### DEBUT HACK : pour le www, on redirige vers du www - if self.remote_addr == '138.231.136.3': - url = url.replace('http://wiki','http://www') + if self.remote_addr in self.cfg.ip_url_replace.keys(): + url = url.replace(self.cfg.ip_url_replace[self.remote_addr][0],self.cfg.ip-url_replace[self.remote_addr][1]) #### FIN DU HACK self.http_headers(["Status: 302", "Location: %s" % url]) diff --git a/wiki/userform.py b/wiki/userform.py index 5c35e75b..2f2803ff 100644 --- a/wiki/userform.py +++ b/wiki/userform.py @@ -174,11 +174,8 @@ space between words. Group page name is not allowed.""") % wikiutil.escape(theus newuser = 0 #### 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. Pour des raisons de sécurité, la fonction de création d'un compte n'est possible que depuis la zone CRANS. diff --git a/wiki/wikiacl.py b/wiki/wikiacl.py index 34554f4a..b2812ead 100644 --- a/wiki/wikiacl.py +++ b/wiki/wikiacl.py @@ -119,7 +119,7 @@ class AccessControlList: #special_users = ["All", "Known", "Trusted"] #### HACK SAUVAGE 2/4 - special_users = ["All", "Known", "Trusted", "Crans", "NoCrans"] + special_users = ["All", "Known", "Trusted", "Conf"] #### FIN DU HACK 2/4 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]) 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 rightsdict.get(dowhat) @@ -240,27 +240,8 @@ class AccessControlList: return None #### HACK SAUVAGE 3/4 - def _requete_interne(self, request): - try: - 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 + def _special_Conf(self, request, name, dowhat, rightsdict): + return self.cfg.acl_request(self, request, name, dowhat, rightsdict) #### FIN Du HACK 3/4 def _special_Trusted(self, request, name, dowhat, rightsdict): @@ -276,6 +257,22 @@ class AccessControlList: return self.acl_lines == other.acl_lines def __ne__(self, other): 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: @@ -392,18 +389,3 @@ def parseACL(request, body): acl_lines.append(args) 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