 
     signed_in_mesg = null
     async.series([
-        # POLICY 1: A given email address is allowed at most 3 failed login attempts per minute.
+        # POLICY 1: A given email address is allowed at most 5 failed login attempts per minute.
         (cb) ->
             database.count
                 table: "failed_sign_ins_by_email_address"

#
# Anti-DOS cracking throttling policy:
#
#   * POLICY 1: A given email address is allowed at most 3 failed login attempts per minute.
#   * POLICY 2: A given email address is allowed at most 10 failed login attempts per hour.
#   * POLICY 3: A given ip address is allowed at most 10 failed login attempts per minute.
#   * POLICY 4: A given ip address is allowed at most 25 failed login attempts per hour.
#############################################################################
sign_in = (client, mesg) =>
    #winston.debug("sign_in")

                    if error
                        sign_in_error(error)
                        cb(true); return
                    if count > 5
                        sign_in_error("A given email address is allowed at most 5 failed login attempts per minute. Please wait.")
                        cb(true); return
                    cb()
        # POLICY 2: A given email address is allowed at most 100 failed login attempts per hour.
        (cb) ->
            database.count
                table: "failed_sign_ins_by_email_address"
