예제 #1
0
파일: views.py 프로젝트: duese/roseguarden
    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
예제 #2
0
파일: views.py 프로젝트: phulc/Hit
def login():
    form = LoginForm()
    if request.method == 'POST' and form.validate():
        user = User.query.filter_by(username=request.form['username']).first()
        if user and flask_bcrypt.check_password_hash(user.password, request.form['password']):
            login_user(user)
            return redirect(url_for('homepage'), 302)
    return render_template('login.html',form=form)
예제 #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):
            return UserSerializer(user).data, 201
        return '', 401
예제 #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).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
예제 #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
예제 #6
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
예제 #7
0
    def post(self, id):
        if id != g.user.id:
            if g.user.role != 1:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
        form = UserPatchForm()
        if not form.validate_on_submit():
            print form.errors
            return form.errors, 422
        user = User.query.filter_by(id=id).first()
        log_text = ''

        if form.newpassword.data != None and form.newpassword.data != '':
            oldpwd = base64.decodestring(form.oldpassword.data)
            if not flask_bcrypt.check_password_hash(user.password, oldpwd):
                print 'incoorect old password'
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            print 'correct old password'
            if log_text != '':
                log_text += '; '
            log_text += 'Changed password'
            user.password = flask_bcrypt.generate_password_hash(
                base64.decodestring(form.newpassword.data))
            db.session.commit()

        if form.lastName.data != None and form.lastName.data != '':
            if user.lastName != form.lastName.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change last name from ' + user.lastName + ' to ' + form.lastName.data
            user.lastName = form.lastName.data

        if form.firstName.data != None and form.firstName.data != '':
            if user.firstName != form.firstName.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change first name from ' + user.firstName + ' to ' + form.firstName.data
            user.firstName = form.firstName.data

        if form.phone.data != None and form.phone.data != '':
            if user.phone != form.phone.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change phone number from ' + user.phone + ' to ' + form.phone.data
            user.phone = form.phone.data

        if form.association.data != None and form.association.data != '':
            if user.association != form.association.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change association to ' + str(
                    form.association.data)
            user.association = form.association.data

        # this properties can only be changed by a admin or a superuser

        if form.role.data != None and form.role.data != '':
            if g.user.role != 1:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.role != form.role.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change role from ' + str(
                    user.role) + ' to ' + str(form.role.data)
            user.role = form.role.data

        if form.accessDaysMask.data != None and form.accessDaysMask.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDaysMask != form.accessDaysMask.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDaysMask from ' + str(
                    user.accessDaysMask) + ' to ' + str(
                        form.accessDaysMask.data)
            user.accessDaysMask = form.accessDaysMask.data

        if form.accessDayCounter.data != None and form.accessDayCounter.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDayCounter != form.accessDayCounter.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDayCounter from ' + str(
                    user.accessDayCounter) + ' to ' + str(
                        form.accessDayCounter.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessDayCounter = form.accessDayCounter.data

        if form.accessDayCyclicBudget.data != None and form.accessDayCyclicBudget.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDayCyclicBudget != form.accessDayCyclicBudget.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDayCyclicBudget from ' + str(
                    user.accessDayCyclicBudget) + ' to ' + str(
                        form.accessDayCyclicBudget.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessDayCyclicBudget = form.accessDayCyclicBudget.data

        if form.accessType.data != None and form.accessType.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessType != form.accessType.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessType from ' + str(
                    user.accessType) + ' to ' + str(form.accessType.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessType = form.accessType.data

        if form.keyMask.data != None and form.keyMask.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.keyMask != form.keyMask.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change keyMask from ' + str(
                    user.keyMask) + ' to ' + str(form.keyMask.data)
            user.keyMask = form.keyMask.data

        if form.accessDateStart.data != None and form.accessDateStart.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDateStart != dateutil.parser.parse(
                    form.accessDateStart.data).replace(tzinfo=None):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDateStart from ', (
                    user.accessDateStart), ' to ', (form.accessDateStart.data)
            user.accessDateStart = dateutil.parser.parse(
                form.accessDateStart.data).replace(tzinfo=None)

        if form.accessDateEnd.data != None and form.accessDateEnd.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDateEnd != dateutil.parser.parse(
                    form.accessDateEnd.data).replace(tzinfo=None):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDateEnd from ' + str(
                    user.accessDateEnd) + ' to ' + str(form.accessDateEnd.data)
            user.accessDateEnd = dateutil.parser.parse(
                form.accessDateEnd.data).replace(tzinfo=None)

        if form.accessTimeStart.data != None and form.accessTimeStart.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessTimeStart != dateutil.parser.parse(
                    form.accessTimeStart.data).replace(tzinfo=None):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessTimeStart from ' + str(
                    user.accessTimeStart) + ' to ' + str(
                        form.accessTimeStart.data)
            user.accessTimeStart = dateutil.parser.parse(
                form.accessTimeStart.data).replace(tzinfo=None)

        if form.accessTimeEnd.data != None and form.accessTimeEnd.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessTimeEnd != dateutil.parser.parse(
                    form.accessTimeEnd.data).replace(tzinfo=None):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessTimeEnd from ' + str(
                    user.accessTimeEnd) + ' to ' + str(form.accessTimeEnd.data)
            user.accessTimeEnd = dateutil.parser.parse(
                form.accessTimeEnd.data).replace(tzinfo=None)

        log_text = 'Update of ' + user.firstName + ' ' + user.lastName + ' (' + user.email + ')' + ' with the following changes: ' + log_text
        logentry = Action(datetime.datetime.utcnow(), config.NODE_NAME,
                          g.user.firstName + ' ' + g.user.lastName,
                          g.user.email, log_text, 'User updated', 'L2', 0,
                          'Web based')
        db.session.add(logentry)
        db.session.commit()

        return '', 201
예제 #8
0
def verify_password(email, password):
    user = User.query.filter_by(email=email).first()
    if not user:
        return False
    g.user = user
    return flask_bcrypt.check_password_hash(user.password, password)
예제 #9
0
def verify_password(email, password):
    user = User.query.filter_by(email=email).first()
    if not user:
        return False
    g.user = user
    return flask_bcrypt.check_password_hash(user.password, password)
예제 #10
0
파일: views.py 프로젝트: duese/roseguarden
    def post(self, id):
        if id != g.user.id:
            if (g.user.role & 1) == 0:
                return make_response(jsonify({"error": "Not authorized"}), 403)
        form = UserPatchForm()
        if not form.validate_on_submit():
            print form.errors
            return form.errors, 422
        user = User.query.filter_by(id=id).first()
        if form.newpassword.data != None and form.newpassword.data != "":
            print "Change password" + base64.decodestring(form.newpassword.data)
            oldpwd = base64.decodestring(form.oldpassword.data)
            if not flask_bcrypt.check_password_hash(user.password, oldpwd):
                print "incoorect old password"
                return make_response(jsonify({"error": "Not authorized"}), 403)
            print "correct old password"
            user.password = flask_bcrypt.generate_password_hash(base64.decodestring(form.newpassword.data))
            db.session.commit()
        if form.lastName.data != None and form.lastName.data != "":
            print "Change last name"
            user.lastName = form.lastName.data
        if form.firstName.data != None and form.firstName.data != "":
            print "Change first name"
            user.firstName = form.firstName.data
        if form.phone.data != None and form.phone.data != "":
            print "Change phone number"
            user.phone = form.phone.data
        if form.role.data != None and form.role.data != "":
            print "Change role to " + str(form.role.data)
            user.role = form.role.data
        if form.association.data != None and form.association.data != "":
            print "Change association to " + str(form.association.data)
            user.association = form.association.data
        if form.accessDaysMask.data != None and form.accessDaysMask.data != "":
            print "Change accessDaysMask to " + str(form.accessDaysMask.data)
            user.accessDaysMask = form.accessDaysMask.data
        if form.accessDayCounter.data != None and form.accessDayCounter.data != "":
            print "Change accessDayCounter to " + str(form.accessDayCounter.data)
            user.accessDayCounter = form.accessDayCounter.data
        if form.accessType.data != None and form.accessType.data != "":
            print "Change accessType to " + str(form.accessType.data)
            user.accessType = form.accessType.data
        if form.keyMask.data != None and form.keyMask.data != "":
            print "Change keyMask to " + str(form.keyMask.data)
            user.keyMask = form.keyMask.data
        if form.accessDateStart.data != None and form.accessDateStart.data != "":
            print "Change accessDateStart to " + str(form.accessDateStart.data)
            user.accessDateStart = datetime.datetime.strptime(form.accessDateStart.data, "%Y-%m-%dT%H:%M:%S.%fZ")
        if form.accessDateEnd.data != None and form.accessDateEnd.data != "":
            print "Change accessDateEnd to " + str(form.accessDateEnd.data)
            user.accessDateEnd = datetime.datetime.strptime(form.accessDateEnd.data, "%Y-%m-%dT%H:%M:%S.%fZ")
        if form.accessTimeStart.data != None and form.accessTimeStart.data != "":
            print "Change accessTimeStart to " + str(form.accessTimeStart.data)
            user.accessTimeStart = datetime.datetime.strptime(form.accessTimeStart.data, "%Y-%m-%dT%H:%M:%S.%fZ")
        if form.accessTimeEnd.data != None and form.accessTimeEnd.data != "":
            print "Change accessTimeEnd to " + str(form.accessTimeEnd.data)
            user.accessTimeEnd = datetime.datetime.strptime(form.accessTimeEnd.data, "%Y-%m-%dT%H:%M:%S.%fZ")

        db.session.commit()

        return "", 201
예제 #11
0
    def post(self, id):
        if id != g.user.id:
            if g.user.role != 1:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
        form = UserPatchForm()
        if not form.validate_on_submit():
            print form.errors
            return form.errors, 422
        user = User.query.filter_by(id=id).first()
        log_text = ''
        if form.newpassword.data != None and form.newpassword.data != '':
            oldpwd = base64.decodestring(form.oldpassword.data)
            if not flask_bcrypt.check_password_hash(user.password, oldpwd):
                print 'incoorect old password'
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            print 'correct old password'
            if log_text != '':
                log_text += '; '
            log_text += 'Changed password'
            user.password = flask_bcrypt.generate_password_hash(base64.decodestring(form.newpassword.data))
            db.session.commit()
        if form.lastName.data != None and form.lastName.data != '':
            if user.lastName != form.lastName.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change last name from ' + user.lastName + ' to ' + form.lastName.data
            user.lastName = form.lastName.data
        if form.firstName.data != None and form.firstName.data != '':
            if user.firstName != form.firstName.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change first name from ' + user.firstName + ' to ' + form.firstName.data
            user.firstName = form.firstName.data
        if form.phone.data != None and form.phone.data != '':
            if user.phone != form.phone.data:
                if log_text != '':
                    log_text += '; '
                log_text +=  'Change phone number from ' + user.phone + ' to ' + form.phone.data
            user.phone = form.phone.data
        if form.association.data != None and form.association.data != '':
            if user.association != form.association.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change association to ' + str(form.association.data)
            user.association = form.association.data

        # this properties can only be changed by a admin or a superuser

        if form.role.data != None and form.role.data != '':
            if g.user.role != 1:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.role != form.role.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change role from ' + str(user.role) + ' to ' + str(form.role.data)
            user.role = form.role.data

        if form.accessDaysMask.data != None and form.accessDaysMask.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDaysMask != form.accessDaysMask.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDaysMask from ' + str(user.accessDaysMask) + ' to ' + str(form.accessDaysMask.data)
            user.accessDaysMask = form.accessDaysMask.data
        if form.accessDayCounter.data != None and form.accessDayCounter.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDayCounter != form.accessDayCounter.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDayCounter from ' + str(user.accessDayCounter) + ' to ' + str(form.accessDayCounter.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessDayCounter = form.accessDayCounter.data
        if form.accessDayCyclicBudget.data != None and form.accessDayCyclicBudget.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDayCyclicBudget != form.accessDayCyclicBudget.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDayCyclicBudget from ' + str(user.accessDayCyclicBudget) + ' to ' + str(form.accessDayCyclicBudget.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessDayCyclicBudget = form.accessDayCyclicBudget.data
        if form.accessType.data != None and form.accessType.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessType != form.accessType.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessType from ' + str(user.accessType) + ' to ' + str(form.accessType.data)
                user.lastAccessDaysUpdateDate = datetime.datetime.today()
            user.accessType = form.accessType.data
        if form.keyMask.data != None and form.keyMask.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.keyMask != form.keyMask.data:
                if log_text != '':
                    log_text += '; '
                log_text += 'Change keyMask from ' + str(user.keyMask) + ' to ' + str(form.keyMask.data)
            user.keyMask = form.keyMask.data
        if form.accessDateStart.data != None and form.accessDateStart.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDateStart != datetime.datetime.strptime(form.accessDateStart.data, '%Y-%m-%dT%H:%M:%S.%fZ'):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDateStart from ' + str(user.accessDateStart) + ' to ' + str(form.accessDateStart.data)
            user.accessDateStart = datetime.datetime.strptime(form.accessDateStart.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessDateEnd.data != None and form.accessDateEnd.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessDateEnd != datetime.datetime.strptime(form.accessDateEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ'):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessDateEnd from ' + str(user.accessDateEnd ) + ' to ' + str(form.accessDateEnd.data)
            user.accessDateEnd = datetime.datetime.strptime(form.accessDateEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessTimeStart.data != None and form.accessTimeStart.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessTimeStart != datetime.datetime.strptime(form.accessTimeStart.data, '%Y-%m-%dT%H:%M:%S.%fZ'):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessTimeStart from ' + str(user.accessTimeStart) + ' to ' + str(form.accessTimeStart.data)
            user.accessTimeStart = datetime.datetime.strptime(form.accessTimeStart.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessTimeEnd.data != None and form.accessTimeEnd.data != '':
            if g.user.role != 1 and g.user.role != 2:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            if user.accessTimeEnd != datetime.datetime.strptime(form.accessTimeEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ'):
                if log_text != '':
                    log_text += '; '
                log_text += 'Change accessTimeEnd from ' + str(user.accessTimeEnd) + ' to ' + str(form.accessTimeEnd.data)
            user.accessTimeEnd = datetime.datetime.strptime(form.accessTimeEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ')

        log_text = 'Update of ' + user.firstName + ' ' + user.lastName + ' (' + user.email + ')' + ' with the following changes: ' + log_text
        logentry = Action(datetime.datetime.utcnow(), config.NODE_NAME, g.user.firstName + ' ' + g.user.lastName,
                       g.user.email, log_text, 'User updated',
                       'L2', 0, 'Web based')
        db.session.add(logentry)
        db.session.commit()

        return '', 201
예제 #12
0
파일: model.py 프로젝트: romasport/flog
 def verify_passwd(self, passwd):
     return flask_bcrypt.check_password_hash(self.password, passwd)
예제 #13
0
    def post(self, id):
        if id != g.user.id:
            if (g.user.role & 1) == 0:
                return make_response(jsonify({'error': 'Not authorized'}), 403)
        form = UserPatchForm()
        if not form.validate_on_submit():
            print form.errors
            return form.errors,422
        user = User.query.filter_by(id=id).first()
        if form.newpassword.data != None and form.newpassword.data != '':
            print 'Change password' + base64.decodestring(form.newpassword.data)
            oldpwd = base64.decodestring(form.oldpassword.data)
            if not flask_bcrypt.check_password_hash(user.password, oldpwd):
                print 'incoorect old password'
                return make_response(jsonify({'error': 'Not authorized'}), 403)
            print 'correct old password'
            user.password = flask_bcrypt.generate_password_hash(base64.decodestring(form.newpassword.data))
            db.session.commit()
        if form.lastName.data != None and form.lastName.data != '':
            print 'Change last name'
            user.lastName = form.lastName.data
        if form.firstName.data != None and form.firstName.data != '':
            print 'Change first name'
            user.firstName = form.firstName.data
        if form.phone.data != None and form.phone.data != '':
            print 'Change phone number'
            user.phone = form.phone.data
        if form.role.data != None and form.role.data != '':
            print 'Change role to ' + str(form.role.data)
            user.role = form.role.data
        if form.association.data != None and form.association.data != '':
            print 'Change association to ' + str(form.association.data)
            user.association = form.association.data
        if form.accessDaysMask.data != None and form.accessDaysMask.data != '':
            print 'Change accessDaysMask to ' + str(form.accessDaysMask.data)
            user.accessDaysMask = form.accessDaysMask.data
        if form.accessDayCounter.data != None and form.accessDayCounter.data != '':
            print 'Change accessDayCounter to ' + str(form.accessDayCounter.data)
            user.accessDayCounter = form.accessDayCounter.data
        if form.accessType.data != None and form.accessType.data != '':
            print 'Change accessType to ' + str(form.accessType.data)
            user.accessType = form.accessType.data
        if form.keyMask.data != None and form.keyMask.data != '':
            print 'Change keyMask to ' + str(form.keyMask.data)
            user.keyMask = form.keyMask.data
        if form.accessDateStart.data != None and form.accessDateStart.data != '':
            print 'Change accessDateStart to ' + str(form.accessDateStart.data)
            user.accessDateStart = datetime.datetime.strptime(form.accessDateStart.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessDateEnd.data != None and form.accessDateEnd.data != '':
            print 'Change accessDateEnd to ' + str(form.accessDateEnd.data)
            user.accessDateEnd = datetime.datetime.strptime(form.accessDateEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessTimeStart.data != None and form.accessTimeStart.data != '':
            print 'Change accessTimeStart to ' + str(form.accessTimeStart.data)
            user.accessTimeStart = datetime.datetime.strptime(form.accessTimeStart.data, '%Y-%m-%dT%H:%M:%S.%fZ')
        if form.accessTimeEnd.data != None and form.accessTimeEnd.data != '':
            print 'Change accessTimeEnd to ' + str(form.accessTimeEnd.data)
            user.accessTimeEnd = datetime.datetime.strptime(form.accessTimeEnd.data, '%Y-%m-%dT%H:%M:%S.%fZ')

        db.session.commit()

        return '', 201