| Class | ::Bot::Auth::ManagerClass |
| In: |
lib/rbot/core/remote.rb
|
| Parent: | Object |
We extend the ManagerClass to handle remote logins
| MAX_SESSION_ID | = | 2**128 - 1 |
Creates a session id when the given password matches the given botusername
# File lib/rbot/core/remote.rb, line 46
46: def remote_login(botusername, pwd)
47: @remote_users = Hash.new unless defined? @remote_users
48: n = BotUser.sanitize_username(botusername)
49: k = n.to_sym
50: raise "No such BotUser #{n}" unless include?(k)
51: bu = @allbotusers[k]
52: if bu.remote_login(pwd)
53: raise "ran out of session ids!" if @remote_users.length == MAX_SESSION_ID
54: session_id = rand(MAX_SESSION_ID)
55: while @remote_users.has_key?(session_id)
56: session_id = rand(MAX_SESSION_ID)
57: end
58: @remote_users[session_id] = bu
59: return session_id
60: end
61: return false
62: end
Returns the botuser associated with the given session id
# File lib/rbot/core/remote.rb, line 65
65: def remote_user(session_id)
66: return everyone unless session_id
67: return nil unless defined? @remote_users
68: if @remote_users.has_key?(session_id)
69: return @remote_users[session_id]
70: else
71: return nil
72: end
73: end