#!/usr/bin/env python # -*- coding: utf-8 -*- import cherrypy, sys, os, datetime sys.path.append('/usr/scripts/gestion/') # ######################################################## # # FILTRES MAISON # # ######################################################## # from plugins.domfilter import DOMFilter from plugins.templatesfilter import TemplatesFilter from plugins.verifdroitsfilter import VerifDroitsFilter # ######################################################## # # SERVER # # ######################################################## # class Intranet: __ldap = None def __init__(self): import monCompte, impression, factures self.__ldap = cherrypy.config.configMap["global"]["crans_ldap"] # liste des modules disponibles self.monCompte = monCompte.monCompte() self.sous = factures.root() # liste des modules en developpement if (cherrypy.config.configMap["global"]["server.environment"] == "development"): self.impression = impression.root() _cpFilterList = [TemplatesFilter(), DOMFilter(), VerifDroitsFilter()] def index(self): return { 'template':'accueil', 'values':{}, } index.exposed= True def info(self): return { 'template':'info-diverses', 'values':{} } info.exposed = True ''' def nounous(self): return "coucou" nounous.exposed= True def test(self): return {"quoi":cherrypy.request.path, "il_faut":cherrypy.config.configMap["/nounous"]["crans.droits"], "moi":cherrypy.session['droits'] } test.exposed = True def environment(self): return cherrypy.config.configMap["global"]["server.environment"] environment.exposed = True ''' # ######################################################## # # LOGIN MAISON # # ######################################################## # # # Methode pour afficher la template de login # def login(from_page = '', login = None, password = '', error_msg=''): return { 'template':'login', 'values':{'login':login, 'password':password, 'from_page':from_page, 'message':error_msg}, 'standalone':True } # # methode qui verifie le login # def verifLogin(login = '', password = ''): message = None if login != '' and password != '': try: globalLdap = cherrypy.config.configMap["global"]["crans_ldap"] adh =globalLdap.search('uid=' + login)['adherent'][0] if adh.checkPassword(password): cherrypy.session['uid'] = login cherrypy.session['session_key'] = True cherrypy.session['droits'] = adh.droits() return else: #print("bad password") message = u"L'authentification a echoué." except Exception, e: #print(e) message = u"L'authentification a echoué." else: #print("sth empty") message = u"L'authentification a echoué." return message # ######################################################## # # COMMAND LINE OPTION # # ######################################################## # # # from optparse import OptionParser parser = OptionParser() parser.add_option("-d", "--dev", action="store_true", dest="dev", default=False, help="launch in dev mode") (options, args) = parser.parse_args() # ######################################################## # # CHERRYPY # # ######################################################## # # # mise en place de cherrypy + conf # cherrypy.config.update(file="/usr/scripts/intranet/intranet.cfg") if (options.dev): cherrypy.config.update(file="/usr/scripts/intranet/dev.cfg") else: cherrypy.config.update(file="/usr/scripts/intranet/prod.cfg") settings={'/': { 'sessionAuthenticateFilter.checkLoginAndPassword': verifLogin, 'sessionAuthenticateFilter.loginScreen': login }} cherrypy.config.update(settings) if (cherrypy.config.configMap["global"]["server.environment"] == "development"): from ldap_crans_test import crans_ldap print("settings : unsing test ldap : env=" + cherrypy.config.configMap["global"]["server.environment"]) else: from ldap_crans import crans_ldap print("settings : unsing prod ldap : env=" + cherrypy.config.configMap["global"]["server.environment"]) cherrypy.config.update({'global':{'crans_ldap':crans_ldap()}}) cherrypy.root = Intranet() cherrypy.server.start()