Example #1
0
    def post(self):
        form = SessionCreateForm()
        if not form.validate_on_submit():
            return form.errors, 422

        user = User.query.filter_by(email=form.email.data).first()
        if user and flask_bcrypt.check_password_hash(user.password, form.password.data):
            logentry = Log(
                datetime.datetime.utcnow(),
                "Test door",
                user.firstName + " " + user.lastName,
                user.email,
                "User login",
                "User login",
                "L2",
                1,
                "Web based",
            )
            try:
                db.session.add(logentry)
                db.session.commit()
            except:
                return "", 201
            return SessionInfoSerializer(user).data, 201
        return "", 401
Example #2
0
    def post(self):
        form = SessionCreateForm()
        if not form.validate_on_submit():
            return form.errors, 422

        user = User.query.filter_by(email=form.email.data).first()
        if user and flask_bcrypt.check_password_hash(user.password, form.password.data):
            return UserSerializer(user).data, 201
        return '', 401
Example #3
0
    def post(self):
        form = SessionCreateForm()
        if not form.validate_on_submit():
            return form.errors, 422

        user = User.query.filter_by(email=form.email.data).first()
        if user and flask_bcrypt.check_password_hash(user.password, form.password.data):
            logentry = Log(datetime.datetime.utcnow(), 'Test door', user.firstName + ' ' + user.lastName, user.email, 'User login', 'User login', 'L2', 1, 'Web based')
            try:
                db.session.add(logentry)
                db.session.commit()
            except:
                return '', 201
            return SessionInfoSerializer(user).data, 201
        return '', 401
Example #4
0
    def post(self):
        form = SessionCreateForm()
        if not form.validate_on_submit():
            return form.errors, 422

        user = User.query.filter_by(email=form.email.data.lower()).first()
        tmp_pwd_hash = generate_password_hash(form.password.data)
        if user and check_password_hash(user.password, form.password.data):
            if datetime.datetime.now() > user.lastLoginDateTime + datetime.timedelta(minutes=ConfigManager.NODE_LOG_MERGE):
                logentry = Action(datetime.datetime.utcnow(), ConfigManager.NODE_NAME, user.firstName + ' ' + user.lastName,
                               user.email, 'User login', 'User login', 'L2', 0, 'Web based')
                user.lastLoginDateTime = datetime.datetime.now()

                try:
                    db.session.add(logentry)
                    db.session.commit()
                except:
                    raise
                    return '', 201

                print "Log-entry created"
            else:
                print "Log-entry is in merge-range ts = " + str(datetime.datetime.utcnow()) + " last = " + str(user.lastLoginDateTime) + " merge = " + str(ConfigManager.NODE_LOG_MERGE) + " minutes"

            return SessionInfoSerializer().dump(user).data, 201
        else:
            lastlogEntry = Action.query.filter_by(logType='Failed login attempt', userMail=form.email.data).order_by(Action.date.desc()).first()
            addNewlogEntry = True

            if lastlogEntry is None:
                addNewlogEntry = True
            else:
                if datetime.datetime.utcnow() > (lastlogEntry.date + datetime.timedelta(minutes=30)):
                    addNewlogEntry = True
                else:
                    addNewlogEntry = False

            if addNewlogEntry == True:
                logentry = Action(datetime.datetime.utcnow(), ConfigManager.NODE_NAME, 'Security warning', form.email.data,
                                'Failed login for ' + form.email.data + ' ( 1 invalid attempts)',
                                'Failed login attempt', 'L1', 0, 'Internal', Action.ACTION_LOGONLY, 1)
                db.session.add(logentry)
            else:
                lastlogEntry.actionParameter += 1
                lastlogEntry.logText = 'Failed login for ' + form.email.data + ' (' + str(lastlogEntry.actionParameter) + ' invalid attempts)'
            db.session.commit()

        return '', 401
Example #5
0
    def post(self):
        form = SessionCreateForm()
        if not form.validate_on_submit():
            return form.errors, 422

        user = User.query.filter_by(email=form.email.data).first()
        if user and flask_bcrypt.check_password_hash(user.password, form.password.data):
            if datetime.datetime.now() > user.lastLoginDateTime + datetime.timedelta(minutes=config.NODE_LOG_MERGE):
                logentry = Action(datetime.datetime.utcnow(), config.NODE_NAME, user.firstName + ' ' + user.lastName,
                               user.email, 'User login', 'User login', 'L2', 0, 'Web based')
                user.lastLoginDateTime = datetime.datetime.now()

                try:
                    db.session.add(logentry)
                    db.session.commit()
                except:
                    raise
                    return '', 201

                print "Log-entry created"
            else:
                print "Log-entry is in merge-range ts = " + str(datetime.datetime.utcnow()) + " last = " + str(user.lastLoginDateTime) + " merge = " + str(config.NODE_LOG_MERGE) + " minutes"

            return SessionInfoSerializer().dump(user).data, 201
        else:
            lastlogEntry = Action.query.filter_by(logType='Failed login attempt', userMail=form.email.data).order_by(Action.date.desc()).first()
            addNewlogEntry = True

            if lastlogEntry is None:
                addNewlogEntry = True
            else:
                if datetime.datetime.utcnow() > (lastlogEntry.date + datetime.timedelta(minutes=30)):
                    addNewlogEntry = True
                else:
                    addNewlogEntry = False

            if addNewlogEntry == True:
                logentry = Action(datetime.datetime.utcnow(), config.NODE_NAME, 'Security warning', form.email.data,
                                'Failed login for ' + form.email.data + ' ( 1 invalid attempts)',
                                'Failed login attempt', 'L1', 0, 'Internal', Action.ACTION_LOGONLY, 1)
                db.session.add(logentry)
            else:
                lastlogEntry.actionParameter += 1
                lastlogEntry.logText = 'Failed login for ' + form.email.data + ' (' + str(lastlogEntry.actionParameter) + ' invalid attempts)'
            db.session.commit()

        return '', 401