Пример #1
0
    def awake(self, trans):
        # Awake our superclass
        self.trans = trans
        app = trans.application()
        session = trans.session()
        request = self.trans.request()
        response = trans.response()
        Page.awake(self, trans)
        if not self.allow_caching:
            response.setHeader("Cache-Control", "no-cache, must-revalidate")
            response.setHeader("Pragma", "no-cache")
            year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time())
            s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
                ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'][wd], day, [
                    None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
                    'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
                ][month], year, hh, mm, ss)
            response.setHeader("Expires", s)
            response.setHeader("Last-Modified", s)

        loginid = session.value('loginid', None)
        if loginid:
            session.delValue("loginid")
        # Are they logging out?
        if request.hasField("logout"):
            session.values().clear()
            request.setField('extra', 'You have been logged out.')
            request.setField('action', request.urlPath().split('/')[-1])
            request.delField('logout')
            app.forward(trans, 'Index')
        elif request.hasField("username") and request.hasField("password"):
            # They are logging in. Clear session.
            session.values().clear()
            username = request.field("username")
            password = request.field("password")
            # And check if they can log in.
            if request.field("loginid",
                             "nologin") == loginid and self.loginUser(
                                 username,
                                 password,
                                 method=self.conf.get("global", "pwdtype")):
                # Successful login.
                # Clear out the login parameters
                request.delField('username')
                request.delField('password')
                #request.delField('login')
                request.delField('loginid')
            else:
                # Failed login attempt; have them try again.
                request.delField('username')
                request.delField('password')
                request.delField('login')
                request.delField('loginid')
                request.setField('extra', 'Login failed.  Please try again.')

        if self.needAccess():
            if not self.needAccess() in self.session().value("access", []):
                request.setField(
                    'extra', 'Du har ikke adgang til denne siden (level: %s)' %
                    self.needAccess())
Пример #2
0
    def __init__(self):
        # a list of all available modules
        # ("short_desc", "filename", "required_access_level", "long_desc")
        self.modules = [
            ("Bedrifter", "Companies.py", "comp",
             "Her kan du editere bedriftsdatabasen"),
            ("Brukere", "Users.py", "mail", "Legge til eller endre brukere"),
            ("MailingLists", "Sympa.py", "mail",
             "Administrasjon av epost-lister"),
            ("Virtual/Aliaser", "Virtual.py", "mail",
             "Gjøre endringer i aliases og virtuals som ikke er knyttet opp mot brukere"
             ),
        ]

        Page.__init__(self)
        self.syslog = Syslog()
        conf = ConfigParser()
        self.conf = conf
        conf.readfp(open("site.conf"))
        if conf.get("global", "database") == "mysql":
            from Mysql import Database

        self.cyrus = Cyrus(conf)
        self.db = Database(conf)
        self.allow_caching = 0
Пример #3
0
 def writeHTML(self):
     if debug:
         req = self.request()
         print '>> About to writeHTML()'
         print '>> fields:'
         self.printDict(req.fields())
         print '>> cookies:'
         self.printDict(req.cookies())
         print
     Page.writeHTML(self)
Пример #4
0
	def writeHTML(self):
		if 1:
			req = self.request()
			print '>> About to writeHTML()'
			print '>> fields:'
			self.printDict(req.fields())
			print '>> cookies:'
			self.printDict(req.cookies())
			print
		Page.writeHTML(self)
Пример #5
0
    def awake(self,trans):
        # Awake our superclass
        self.trans = trans
        app = trans.application()
        session = trans.session()
        request = self.trans.request()
        response = trans.response()
        Page.awake(self,trans)
        if not self.allow_caching:
            response.setHeader("Cache-Control","no-cache, must-revalidate")
            response.setHeader("Pragma","no-cache")
            year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time())
            s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (
                ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'][wd],
                day, [None, 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov',
                      'Dec'][month], year,hh, mm, ss)
            response.setHeader("Expires",s)
            response.setHeader("Last-Modified",s)

        loginid = session.value('loginid',None)
        if loginid:
            session.delValue("loginid")
        # Are they logging out?
        if request.hasField("logout"):
            session.values().clear()
            request.setField('extra', 'You have been logged out.')
            request.setField('action', request.urlPath().split('/')[-1])
            request.delField('logout')
            app.forward(trans, 'Index')
        elif request.hasField("username") and request.hasField("password"):
            # They are logging in. Clear session.
            session.values().clear()
            username = request.field("username")
            password = request.field("password")
            # And check if they can log in.
            if request.field("loginid","nologin") == loginid and self.loginUser(username, password, method=self.conf.get("global", "pwdtype")):
                # Successful login.
                # Clear out the login parameters
                request.delField('username')
                request.delField('password')
                #request.delField('login')
                request.delField('loginid')
            else:
                # Failed login attempt; have them try again.
                request.delField('username')
                request.delField('password')
                request.delField('login')
                request.delField('loginid')
                request.setField('extra', 'Login failed.  Please try again.')

        if self.needAccess():
            if not self.needAccess() in self.session().value("access",[]):
                request.setField('extra','Du har ikke adgang til denne siden (level: %s)' % self.needAccess())
Пример #6
0
	def awake(self,tx):
		Page.awake(self,tx)
		# convert flds to params:
		flds = tx.request().fields().copy()
		params = {}
		for (name,v) in flds.items():
			try:
				ps = self.allowedParams[name]
				params[name] = ps.s2v(v)
			except KeyError:
				raise "TODO"
			
		# instanciate page controller:
		self._ctrl = ReportCtrl(params)
Пример #7
0
	def awake(self,tx):
		Page.awake(self,tx)
		# convert flds to params:
		flds = tx.request().fields().copy()
		params = {}
		for (name,v) in flds.items():
			try:
				ps = self.allowedParams[name]
				params[name] = ps.s2v(v)
			except KeyError:
				raise "TODO"
			
		# instanciate page controller:
		self._ctrl = ReportCtrl(params)
Пример #8
0
    def __init__(self):
        # a list of all available modules
        # ("short_desc", "filename", "required_access_level", "long_desc")
        self.modules = [
                ("Bedrifter","Companies.py","comp","Her kan du editere bedriftsdatabasen"),
                ("Brukere","Users.py","mail","Legge til eller endre brukere"),
                ("MailingLists","Sympa.py","mail","Administrasjon av epost-lister"),
                ("Virtual/Aliaser","Virtual.py","mail","Gjøre endringer i aliases og virtuals som ikke er knyttet opp mot brukere"),
                ]
    
        Page.__init__(self)
        self.syslog = Syslog()
        conf = ConfigParser()
        self.conf = conf
        conf.readfp(open("site.conf"))
        if conf.get("global","database") == "mysql":
            from Mysql import Database

        self.cyrus = Cyrus(conf)
        self.db = Database(conf)
        self.allow_caching = 0
Пример #9
0
	def awake(self, transaction):
		Page.awake(self, transaction)
Пример #10
0
 def respond(self,trans):
     Page.respond(self,trans)
Пример #11
0
	def __init__(self):
		Page.__init__(self)
		Configurable.__init__(self)
Пример #12
0
	def __init__(self):
		Page.__init__(self)
		self._indentBase = '  ' # used in menuItem()
Пример #13
0
 def __init__(self):
     Page.__init__(self)
     Configurable.__init__(self)
Пример #14
0
 def awake(self, trans):
     Page.awake(self, trans)
     self.rendered_form = None
Пример #15
0
 def postAction(self, actionName):
     if actionName not in ('ajaxCall', 'ajaxPoll'):
         Page.postAction(self, actionName)
Пример #16
0
 def writeJavaScript(self):
     Page.writeJavaScript(self)
     s = '<script type="text/javascript" src="ajax%s.js"></script>'
     self.writeln(s % 'call')
     if self._clientPolling:
         self.writeln(s % 'poll')
Пример #17
0
 def actions(self):
     actions = Page.actions(self)
     actions.append('ajaxCall')
     if self._clientPolling:
         actions.append('ajaxPoll')
     return actions
Пример #18
0
 def respond(self, trans):
     Page.respond(self, trans)
Пример #19
0
 def awake(self, trans):
     Page.awake(self, trans)
     self.rendered_form = None