scripts/intranet/plugins/verifdroitsfilter.py
gdetrez bd9ead0d89 ajout d'erreurs personalisees et du module digicode
darcs-hash:20061009172906-f46e9-390eff7e704b7cad2f6a4f3ec8a426fbef179d0b.gz
2006-10-09 19:29:06 +02:00

31 lines
1.3 KiB
Python

from cherrypy.filters.basefilter import BaseFilter
import cherrypy._cputil
##########################
# verification des droits
##########################
#
def verifDroits(mesDroits, lesDroitsQuilFaut):
if not type(mesDroits) == list:
raise ValueError, "mesDroits doit etre une liste"
if (lesDroitsQuilFaut == "all"):
return True
if ("Nounou" in mesDroits):
return True
if type(lesDroitsQuilFaut) == str:
return lesDroitsQuilFaut in mesDroits
elif type(lesDroitsQuilFaut) == list:
return True in [d in mesDroits for d in lesDroitsQuilFaut]
return False
class VerifDroitsFilter(BaseFilter):
def before_main(self):
if not cherrypy.config.get('sessionAuthenticateFilter.on', False):
return
if not cherrypy.session.get("session_key"):
return
droits = cherrypy.config.get('crans.droits', 'all')
if not verifDroits(cherrypy.session['droits'], droits):
raise cherrypy.HTTPError(403, "Vous n'avez pas les droits nécessaires pour accéder à cette page.")