Modification de la structure de l'intranet
darcs-hash:20070124113425-f46e9-b0dc2101073d5c4d896539104cc418693bab419a.gz
This commit is contained in:
parent
0570881d34
commit
8713311bc1
13 changed files with 331 additions and 191 deletions
42
intranet/ClassesIntranet/AuthorisationsManager.py
Normal file
42
intranet/ClassesIntranet/AuthorisationsManager.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
from cherrypy.filters.basefilter import BaseFilter
|
||||
import cherrypy._cputil
|
||||
import cherrypy
|
||||
|
||||
##########################
|
||||
# verification des droits
|
||||
##########################
|
||||
#
|
||||
def verifDroits(mesDroits, lesDroitsQuilFaut):
|
||||
if not type(mesDroits) == list:
|
||||
raise ValueError, "mesDroits doit etre une liste"
|
||||
if (lesDroitsQuilFaut == "all") or (lesDroitsQuilFaut == []):
|
||||
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 AuthorisationsFilter(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.")
|
||||
|
||||
##########################
|
||||
# mise en place des droits
|
||||
##########################
|
||||
#
|
||||
def setDroits(chemin, lesDroitsQuilFaut):
|
||||
settings= {
|
||||
chemin:
|
||||
{ 'crans.droits': lesDroitsQuilFaut}
|
||||
}
|
||||
cherrypy.config.update(settings)
|
Loading…
Add table
Add a link
Reference in a new issue