mirror of
https://github.com/ENSL/ensl.org.git
synced 2025-01-27 03:30:54 +00:00
Add .env to repo
Add template handling for password failure
This commit is contained in:
parent
1ffca4e7a2
commit
0ec3da7bf6
4 changed files with 101 additions and 21 deletions
72
.env
Normal file
72
.env
Normal file
|
@ -0,0 +1,72 @@
|
|||
# Read https://github.com/bkeepers/dotenv
|
||||
# This is the base file
|
||||
|
||||
# Change this depending where you are
|
||||
RACK_ENV=production
|
||||
RAILS_ENV=production
|
||||
|
||||
# App domain, used mostly bt just postfix
|
||||
# The app is designed as domain-indepdendent
|
||||
APP_DOMAIN=ensl.org
|
||||
|
||||
# App secret for cookie encryption, blank is random
|
||||
APP_SECRET=
|
||||
|
||||
# Public ports
|
||||
APP_PORT=80
|
||||
APP_PORT_SSL=443
|
||||
|
||||
# FIXME: doesn't work yet
|
||||
# Options for: SCrypt::Engine.calibrate!(max_mem: 16 * 1024 * 1024)
|
||||
SCRYPT_SALT_OPTS=
|
||||
SCRYPT_MAX_TIME=1
|
||||
|
||||
# App path inside docker
|
||||
DEPLOY_PATH=/var/www
|
||||
ASSETS_PATH=/home/web/assets
|
||||
ASSETS_PRECOMPILE=0
|
||||
|
||||
# Puma fails in cluster mode, so use 0 workers
|
||||
PUMA_WORKERS=0
|
||||
|
||||
# Threads and port
|
||||
PUMA_MIN_THREADS=1
|
||||
PUMA_MAX_THREADS=16
|
||||
PUMA_PORT=4000
|
||||
|
||||
# Use higher timeout if debug fails
|
||||
PUMA_TIMEOUT=30
|
||||
|
||||
# Path to files
|
||||
FILES_PATH=/var/www/public/files
|
||||
|
||||
# Docker adds mysql to hosts
|
||||
MYSQL_HOST=db
|
||||
|
||||
# This is used by both rails + mysql
|
||||
MYSQL_DATABASE=ensl
|
||||
|
||||
# These are for ENSL, edit at least password
|
||||
MYSQL_USER=ensl
|
||||
MYSQL_PASSWORD=ensl
|
||||
|
||||
# Root MySQL password
|
||||
MYSQL_ROOT_PASSWORD=ensl
|
||||
MYSQL_ROOT_HOST=%
|
||||
|
||||
# More MySQL vars
|
||||
MYSQL_CONNECTION_POOL=32
|
||||
|
||||
# Test
|
||||
SELENIUM_HOST=selenium
|
||||
TEST_APP_HOST=localhost
|
||||
TEST_APP_PORT=3005
|
||||
|
||||
# New relic
|
||||
NEW_RELIC_APP_NAME=ENSL
|
||||
NEW_RELIC_LICENSE_KEY=
|
||||
|
||||
# Google calendar
|
||||
GOOGLE_API_KEY=
|
||||
GOOGLE_CALENDAR_ID=
|
||||
GOOGLE_CALENDAR=enabled
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -4,7 +4,7 @@
|
|||
/spec/tmp/*
|
||||
.ruby-version
|
||||
.ruby-gemset
|
||||
.env
|
||||
# .env
|
||||
.env*.local
|
||||
.tmp*
|
||||
.rspec
|
||||
|
|
|
@ -369,27 +369,34 @@ class User < ActiveRecord::Base
|
|||
|
||||
def self.authenticate(login)
|
||||
if (user = where("LOWER(username) = LOWER(?)", login[:username]).first)
|
||||
case user.password_hash
|
||||
when User::PASSWORD_SCRYPT
|
||||
pass = SCrypt::Password.new(user.password)
|
||||
return user if pass == login[:password]
|
||||
when User::PASSWORD_MD5_SCRYPT
|
||||
pass = SCrypt::Password.new(user.password)
|
||||
# Match to Scrypt(Md5(password))
|
||||
if pass == Digest::MD5.hexdigest(login[:password])
|
||||
user.raw_password = login[:password]
|
||||
user.update_password
|
||||
user.save!
|
||||
return user
|
||||
end
|
||||
# when User::PASSWORD_MD5
|
||||
else
|
||||
if user.password == Digest::MD5.hexdigest(login[:password])
|
||||
user.raw_password = login[:password]
|
||||
user.update_password
|
||||
user.save!
|
||||
return user
|
||||
begin
|
||||
case user.password_hash
|
||||
when User::PASSWORD_SCRYPT
|
||||
# FIXME: If exception occurs here, user cannot log in
|
||||
pass = SCrypt::Password.new(user.password)
|
||||
return user if pass == login[:password]
|
||||
when User::PASSWORD_MD5_SCRYPT
|
||||
pass = SCrypt::Password.new(user.password)
|
||||
# Match to Scrypt(Md5(password))
|
||||
if pass == Digest::MD5.hexdigest(login[:password])
|
||||
user.raw_password = login[:password]
|
||||
user.update_password
|
||||
user.save!
|
||||
return user
|
||||
end
|
||||
# when User::PASSWORD_MD5
|
||||
else
|
||||
if user.password == Digest::MD5.hexdigest(login[:password])
|
||||
user.raw_password = login[:password]
|
||||
user.update_password
|
||||
user.save!
|
||||
return user
|
||||
end
|
||||
end
|
||||
# TODO: controller needs to handle this
|
||||
#rescue Exception => ex
|
||||
# user.errors.add(:password, "%s (%s)" % [I18n.t(:password_corrupt), ex.class.to_s])
|
||||
# return nil
|
||||
end
|
||||
end
|
||||
return nil
|
||||
|
|
|
@ -85,6 +85,7 @@ en:
|
|||
login_status: "Logged in as"
|
||||
passwords_sent: "Password has been sent."
|
||||
password_md5_scrypt: "Password has been upgraded to higher security level (MD5->SCRYPT)."
|
||||
password_corrupt: "Your password has become corrupt, please reset via forget password or contact admin."
|
||||
incorrect_information: "Incorrect Information."
|
||||
weeks_create: "Week was successfully created."
|
||||
weeks_update: "Week was successfully updated."
|
||||
|
|
Loading…
Reference in a new issue