Fixed recreate of session.
This commit is contained in:
parent
386012a4a6
commit
e8d7dc2954
2 changed files with 68 additions and 5 deletions
|
@ -46,6 +46,11 @@ returns
|
||||||
file.write content
|
file.write content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# destory old session if needed
|
||||||
|
if File::exist?( path )
|
||||||
|
Sessions.destory(client_id)
|
||||||
|
end
|
||||||
|
|
||||||
# move to destination directory
|
# move to destination directory
|
||||||
FileUtils.mv( path_tmp, path )
|
FileUtils.mv( path_tmp, path )
|
||||||
|
|
||||||
|
@ -240,6 +245,11 @@ returns
|
||||||
session_dir = "#{@path}/#{client_id}"
|
session_dir = "#{@path}/#{client_id}"
|
||||||
session_file = "#{session_dir}/session"
|
session_file = "#{session_dir}/session"
|
||||||
data = nil
|
data = nil
|
||||||
|
if !File.exist? session_dir
|
||||||
|
self.destory(client_id)
|
||||||
|
puts "ERROR: missing session directory for '#{client_id}', remove session."
|
||||||
|
return
|
||||||
|
end
|
||||||
if !File.exist? session_file
|
if !File.exist? session_file
|
||||||
self.destory(client_id)
|
self.destory(client_id)
|
||||||
puts "ERROR: missing session file for '#{client_id}', remove session."
|
puts "ERROR: missing session file for '#{client_id}', remove session."
|
||||||
|
|
|
@ -46,7 +46,60 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
assert_equal( nil, nil, 'check delete' )
|
assert_equal( nil, nil, 'check delete' )
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'b collections group' do
|
test 'c session create / update' do
|
||||||
|
|
||||||
|
# create users
|
||||||
|
roles = Role.where( name: [ 'Agent'] )
|
||||||
|
groups = Group.all
|
||||||
|
|
||||||
|
UserInfo.current_user_id = 1
|
||||||
|
agent1 = User.create_or_update(
|
||||||
|
login: 'session-agent-1',
|
||||||
|
firstname: 'Session',
|
||||||
|
lastname: 'Agent 1',
|
||||||
|
email: 'session-agent1@example.com',
|
||||||
|
password: 'agentpw',
|
||||||
|
active: true,
|
||||||
|
roles: roles,
|
||||||
|
groups: groups,
|
||||||
|
)
|
||||||
|
agent1.roles = roles
|
||||||
|
agent1.save
|
||||||
|
|
||||||
|
# create sessions
|
||||||
|
client_id1 = '123456789'
|
||||||
|
Sessions.create( client_id1, {}, { type: 'websocket' } )
|
||||||
|
|
||||||
|
# check if session exists
|
||||||
|
assert( Sessions.session_exists?(client_id1), 'check if session exists' )
|
||||||
|
|
||||||
|
# check session data
|
||||||
|
data = Sessions.get(client_id1)
|
||||||
|
assert( data[:meta], 'check if meta exists' )
|
||||||
|
assert( data[:user], 'check if user exists' )
|
||||||
|
assert_equal( data[:user]['id'], nil, 'check if user id is correct' )
|
||||||
|
|
||||||
|
# recreate session
|
||||||
|
Sessions.create( client_id1, agent1.attributes, { type: 'websocket' } )
|
||||||
|
|
||||||
|
# check if session exists
|
||||||
|
assert( Sessions.session_exists?(client_id1), 'check if session exists' )
|
||||||
|
|
||||||
|
# check session data
|
||||||
|
data = Sessions.get(client_id1)
|
||||||
|
assert( data[:meta], 'check if meta exists' )
|
||||||
|
assert( data[:user], 'check if user exists' )
|
||||||
|
assert_equal( data[:user]['id'], agent1.id, 'check if user id is correct' )
|
||||||
|
|
||||||
|
# destroy session
|
||||||
|
Sessions.destory(client_id1)
|
||||||
|
|
||||||
|
# check if session exists
|
||||||
|
assert( !Sessions.session_exists?(client_id1), 'check if session exists' )
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'c collections group' do
|
||||||
require 'sessions/backend/collections/group.rb'
|
require 'sessions/backend/collections/group.rb'
|
||||||
|
|
||||||
UserInfo.current_user_id = 2
|
UserInfo.current_user_id = 2
|
||||||
|
@ -132,7 +185,7 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
user.roles = roles
|
user.roles = roles
|
||||||
user.save
|
user.save
|
||||||
|
|
||||||
test 'b collections organization' do
|
test 'c collections organization' do
|
||||||
require 'sessions/backend/collections/organization.rb'
|
require 'sessions/backend/collections/organization.rb'
|
||||||
UserInfo.current_user_id = 2
|
UserInfo.current_user_id = 2
|
||||||
user = User.lookup(id: 1)
|
user = User.lookup(id: 1)
|
||||||
|
@ -186,7 +239,7 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
assert_equal( result1, result2, 'check collections' )
|
assert_equal( result1, result2, 'check collections' )
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'b rss' do
|
test 'c rss' do
|
||||||
user = User.lookup(id: 1)
|
user = User.lookup(id: 1)
|
||||||
collection_client1 = Sessions::Backend::Rss.new(user, false, '123-1')
|
collection_client1 = Sessions::Backend::Rss.new(user, false, '123-1')
|
||||||
|
|
||||||
|
@ -202,7 +255,7 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
assert( !result1, 'check rss - recall' )
|
assert( !result1, 'check rss - recall' )
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'b activity stream' do
|
test 'c activity stream' do
|
||||||
|
|
||||||
# create users
|
# create users
|
||||||
roles = Role.where( name: [ 'Agent', 'Admin'] )
|
roles = Role.where( name: [ 'Agent', 'Admin'] )
|
||||||
|
@ -248,7 +301,7 @@ class SessionBasicTest < ActiveSupport::TestCase
|
||||||
assert( result1, 'check as agent1 - recall 3' )
|
assert( result1, 'check as agent1 - recall 3' )
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'b ticket_create' do
|
test 'c ticket_create' do
|
||||||
|
|
||||||
UserInfo.current_user_id = 2
|
UserInfo.current_user_id = 2
|
||||||
user = User.lookup(id: 1)
|
user = User.lookup(id: 1)
|
||||||
|
|
Loading…
Reference in a new issue