Ejemplo n.º 1
0
    def checkAuth(self):
        """Holt Benutzername aus der Session, prüft Benutzerberechtigung.
        Setzt self.user, self.mitarbeiter, self.stelle"""
        # auto_user = '******' # so ist das Entwickeln einfacher
        auto_user = ''   # so sollte es im Betrieb sein
        if auto_user:
            self.session = get_session(self.REQUEST, self.RESPONSE)
            if self.session:
                self.user = self.session.user
            else:
                self.session = create_session(auto_user, self.RESPONSE)
                self.user = self.session.user
                
            self.mitarbeiter = ebapi.Mitarbeiter(ben=self.user,
                                                 stat=ebapi.cc('status', 'i'))
            self.stelle = ebapi.Code(self.mitarbeiter['stz'])
            if self.mitarbeiter['benr__code'] not in self.permissions:
                raise KeineZugriffsberechtigung()
            return

        self.session = get_session(self.REQUEST, self.RESPONSE)
        if self.session:
            self.user = self.session.user
        else:
            raise NichtIdentifiziert()
        self.mitarbeiter = ebapi.Mitarbeiter(ben=self.user,
                                             stat=ebapi.cc('status', 'i'))
        self.stelle = ebapi.Code(self.mitarbeiter['stz'])
        if self.mitarbeiter['benr__code'] not in self.permissions:
            raise KeineZugriffsberechtigung()
Ejemplo n.º 2
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)
Ejemplo n.º 3
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)