def uniqueEmail(request):
    userEmail = request.form['email']
    user = mysession.query(User).filter_by(email=userEmail).all()
    if len(user) > 0:
        return False
    else:
        return True
def companyExists(request):
    userCompany = request.form['company']
    company = mysession.query(Admin_Setting).filter_by(
        company_name=userCompany).all()
    if (len(company) > 0):
        return True
    else:
        return False
def getCompanyRequirements(company):
    settings = mysession.query(Admin_Setting).filter_by(
        company_name=company).first()
    settingsArray = [
        settings.password_length, settings.require_caps,
        settings.require_lowercase, settings.require_number,
        settings.require_special, settings.expiration_days
    ]
    return settingsArray
def verifyChange(request):
    userEmail = request.form['email']
    userPass = request.form['oldPassword']
    user = mysession.query(User).filter_by(email=userEmail).first()
    Password = user.current_password
    if verifyPassword(Password, userPass):
        return True
    else:
        return False
def updateAdminSettings(form, companyName):
    passLength = form.plength.data
    requireCaps = form.caps.data
    requireLow = form.lowercase.data
    requireNum = form.numeric.data
    requireSpec = form.special.data
    expDays = form.expiration.data

    mysession.query(Admin_Setting).filter_by(company_name=companyName).update(
        {"password_length": passLength})
    mysession.query(Admin_Setting).filter_by(company_name=companyName).update(
        {"require_caps": requireCaps})
    mysession.query(Admin_Setting).filter_by(company_name=companyName).update(
        {"require_lowercase": requireLow})
    mysession.query(Admin_Setting).filter_by(company_name=companyName).update(
        {"require_number": requireNum})
    mysession.query(Admin_Setting).filter_by(company_name=companyName).update(
        {"require_special": requireSpec})
def verifyAdmin(request):
    userEmail = request.form['email']
    userPass = request.form['password']
    user = mysession.query(User).filter_by(email=userEmail).first()
    Password = user.current_password
    if verifyPassword(Password, userPass):
        return user.is_admin
    else:
        return False
def checkWithOldPasswordsAndUpdate(request):
    userEmail = request.form['email']
    password = request.form['password']
    objectOldPasswords = mysession.query(Old_Password).filter_by(
        userEmail=userEmail).all()
    oldPasswordsArr = []
    for i in objectOldPasswords:
        oldPasswordsArr.append(i.hashed_password)

    responseArray = similar(password, oldPasswordsArr)
    print responseArray
def save(language, source, domain):
    q = mysession.query(Datum).filter(Datum.gold==True, Datum.language==language, Datum.source==source, Datum.domain==domain)
    data = q.all()
    for datum in data:
        print "saving " + str(datum.id)
        filename = str(datum.id)+".txt"
        fullpath = dataFolder + class_name_by_value(datum.class_value) + "/" + filename
        f = codecs.open(fullpath, 'w', 'utf-8')
        f.write(datum.text)
        f.close
        print "done"
    dispose()
def checkWithOldPasswordsAndUpdateChange(request):
    email = request.form['email']
    password = request.form['password']
    oldPassword = request.form['oldPassword']
    oldPasswords = mysession.query(Old_Password).filter_by(
        userEmail=email).all()
    oldPasswordsArr = []
    for i in oldPasswords:
        oldPasswordsArr.append(i.hashed_password)

    responseArray = newPasswordToOldPasswordComparison(password, oldPassword,
                                                       oldPasswordsArr)
    if (responseArray[0]):
        newHashedPassword = responseArray[1]
        mysession.query(User).filter_by(email=email).update(
            {"current_password": newHashedPassword})
        oldPassword = hashPassword(oldPassword)
        newRow = Old_Password(userEmail=email, hashed_password=oldPassword)
        mysession.add(newRow)
        mysession.commit()
        return True
    else:
        return False
def company(request):
    userEmail = request.form['email']
    user = mysession.query(User).filter_by(email=userEmail).first()
    userCompany = user.company_name
    return userCompany
def changePassword(request):
    userEmail = request.form['email']
    newPassword = request.form['password']
    newPassword = hashPassword(newPassword)
    mysession.query(User).filter_by(email=userEmail).update(
        {"current_password": newPassword})