add expiry for login

This commit is contained in:
phyusin
2018-06-26 11:23:34 +06:30
parent ba0a7b3391
commit da1f0a4765
5 changed files with 21 additions and 6 deletions

View File

@@ -21,12 +21,12 @@ class Employee < ApplicationRecord
def self.login(emp_id, password)
user = Employee.find_by_emp_id(emp_id)
expiry_time = login_expiry_time
if (user)
#user.authenticate(password)
if (user.authenticate(password))
user.generate_token
user.session_expiry = DateTime.now.utc + 30.minutes
user.session_expiry = DateTime.now.utc + expiry_time.minutes
user.session_last_login = DateTime.now.utc
user.save
return user
@@ -41,9 +41,10 @@ class Employee < ApplicationRecord
def self.authenticate_by_token(session_token)
if (session_token)
user = Employee.find_by_token_session(session_token)
expiry_time = login_expiry_time
if user && user.session_expiry.utc > DateTime.now.utc
#Extend the login time each time authenticatation take place
user.session_expiry = user.session_expiry.utc + 30.minutes
user.session_expiry = user.session_expiry.utc + expiry_time.minutes
user.save
return true
else
@@ -72,5 +73,17 @@ class Employee < ApplicationRecord
retry
end
def self.login_expiry_time
expiry_time = 30
login_expiry = Lookup.collection_of('expiry_time')
if !login_expiry.empty?
login_expiry.each do |exp_time|
if exp_time[0].downcase == "login"
expiry_time = exp_time[1].to_i
end
end
end
return expiry_time
end
end