def query(self, query):
     #print query
     query = query.strip()
     try:
         from ebkus.app import protocol
         protocol.write_sql_protocol(sql=query)
     except:
         # hat für die Funktionalität keine Bedeutung
         logging.exception("Probleme beim SQL-Protokollieren")
     cursor = self.dbhandle.cursor()
     is_select = query[:6].lower() == 'select'
     try:
         logging.debug("Datenbankzugriff: \n%s", query)
         # for MySQLdb 1.2.2 MODIFE
         if self._mysqldb_needs_unicode and not isinstance(query, unicode):
             query = query.decode('latin1')
         e_res = cursor.execute(query)
         logging.debug("Resultat (execute): %s", e_res)
         if is_select:
             f_res = cursor.fetchall()
             logging.debug("Resultat (fetchall):\n%s", f_res)
             # schöner, aber overhead für jeden Request auch ohne debugging
             logging.debug("Resultat (fetchall):\n%s", '\n'.join([str(e) for e in f_res]))
             return f_res
         else:
             return e_res
     except Exception, e:
         logging.debug("Fehler beim Datenbankzugriff:", exc_info=True)
         raise
Beispiel #2
0
 def processForm(self, REQUEST, RESPONSE):
     write_sql_protocol(
         artdeszugriffs='LOGOUT : Benutzer (%s) hat sich abgemeldet' % self.user,
         username=self.user, ip=self.ip)
     if self.session:
         self.session.expire(RESPONSE)
     meldung = {
         'titel':'Abmeldung vom EBKuS System','legende':'Abmeldung',
         'zeile1':'Sie wurden vom EBKuS System abgemeldet','url':'login',
         'zeile2': ''
         }
     return meldung_weiterleitung_t % meldung
Beispiel #3
0
 def processForm(self, REQUEST, RESPONSE):
     write_sql_protocol(
         artdeszugriffs="LOGOUT : Benutzer (%s) hat sich abgemeldet" % self.user, username=self.user, ip=self.ip
     )
     if self.session:
         self.session.expire(RESPONSE)
     meldung = {
         "titel": "Abmeldung vom EBKuS System",
         "legende": "Abmeldung",
         "zeile1": "Sie wurden vom EBKuS System abgemeldet",
         "url": "login",
         "zeile2": "",
     }
     return meldung_weiterleitung_t % meldung
Beispiel #4
0
    def processForm(self, REQUEST, RESPONSE):
        res = []
        username = self.form.get("username")
        password = self.form.get("pass")

        if username is None:
            res.append(head_normal_ohne_help_t % ("EBKuS Benutzeranmeldung"))
            res.append(login_interface_t % {"index_url": "/ebkus/%s/index.html" % config.INSTANCE_NAME})
            return "".join(res)

        try:
            mitarbeiter = Mitarbeiter(ben=username, stat=cc("status", "i"))
        except:
            write_sql_protocol(
                artdeszugriffs="LOGIN : Ungültiger Benutzername (%s)" % username, username=username, ip=self.ip
            )
            meldung = {
                "titel": "Ungültiger Benutzername!",
                "legende": "Ungültiger Benutzername!",
                "zeile1": "Sie haben einen ungültigen Benutzernamen eingegeben.",
                "zeile2": "Bitte versuchen Sie es erneut.",
            }
            res.append(meldung_t % meldung)
            return "".join(res)

        if not mitarbeiter["pass"] == sha.new(password).hexdigest():
            write_sql_protocol(
                artdeszugriffs="LOGIN : Falsches Passwort (%s)" % username, username=username, ip=self.ip
            )
            meldung = {
                "titel": "Falsches Passwort!",
                "legende": "Falsches Passwort!",
                "zeile1": "Sie haben ein falsches Passwort eingegeben.",
                "zeile2": "Bitte versuchen Sie es erneut.",
            }
            res.append(meldung_t % meldung)
            return "".join(res)

        other_session = has_session(username)
        if other_session:
            # Es gibt noch eine Session desselben Benutzers, die
            # nicht mit einem logout oder durch Timeout beendet wurde.
            other_session.delete()
        if mitarbeiter["pass"] == sha.new(username).hexdigest():
            # Passwort ist identisch mit dem Benutzernamen
            weiterleitung = "pwchange"
        else:
            weiterleitung = "menu"
        self.session = create_session(username, self.RESPONSE)
        res.append(head_weiterleitung_t % ("Willkommen bei EBKuS", "2", weiterleitung))
        res.append(login_meldung_t % mitarbeiter)
        write_sql_protocol(artdeszugriffs="LOGIN : Gültiges Login (%s)" % username, username=username, ip=self.ip)
        return "".join(res)
Beispiel #5
0
    def processForm(self, REQUEST, RESPONSE):
        res = []
        username = self.form.get('username')
        password = self.form.get('pass')

        if username is None:
            res.append(head_normal_ohne_help_t % ("EBKuS Benutzeranmeldung"))
            res.append(login_interface_t %
                       {'index_url': "/ebkus/%s/index.html" % config.INSTANCE_NAME})
            return ''.join(res)

        ml = MitarbeiterList(where="ben = '%s' and stat = %s" %
                             (username, cc('status', 'i')))
        if not ml:
            write_sql_protocol(
                artdeszugriffs='LOGIN : Ungültiger Benutzername (%s)' % username,
                username=username, ip=self.ip)
            meldung = {
                'titel':'Ungültiger Benutzername!','legende':'Ungültiger Benutzername!',
                'zeile1':'Sie haben einen ungültigen Benutzernamen eingegeben.',
                'zeile2':'Bitte versuchen Sie es erneut.'
                }
            res.append(meldung_t % meldung)
            return ''.join(res)
        mitarbeiter = ml[0]
        if not mitarbeiter['pass'] == sha.new(password).hexdigest():
            write_sql_protocol(artdeszugriffs='LOGIN : Falsches Passwort (%s)' % username,
                               username=username, ip=self.ip)
            meldung = {
                'titel':'Falsches Passwort!','legende':'Falsches Passwort!',
                'zeile1':'Sie haben ein falsches Passwort eingegeben.',
                'zeile2':'Bitte versuchen Sie es erneut.'
                }
            res.append(meldung_t % meldung)
            return ''.join(res)

        other_session = has_session(username)
        if other_session:
            # Es gibt noch eine Session desselben Benutzers, die
            # nicht mit einem logout oder durch Timeout beendet wurde.
            other_session.delete()
        if mitarbeiter['pass'] == sha.new(username).hexdigest():
            # Passwort ist identisch mit dem Benutzernamen
            weiterleitung = 'pwchange'
        else:
            weiterleitung = 'menu'
        self.session = create_session(username, self.RESPONSE)
        res.append(head_weiterleitung_t % ("Willkommen bei EBKuS","2", weiterleitung))
        res.append(login_meldung_t % mitarbeiter)
        write_sql_protocol(artdeszugriffs='LOGIN : Gültiges Login (%s)' % username,
                           username=username, ip=self.ip)
        return ''.join(res)