# class_eval {\r
# define_method(m) { |*a|\r
# r = super(*a)\r
-# Irc::Bot::Auth.authmanager.set_changed\r
+# Irc::Bot::Auth.manager.set_changed\r
# r\r
# }\r
# }\r
attr_reader :password\r
attr_reader :netmasks\r
attr_reader :perm\r
- # Please remember to #set_changed() the authmanager\r
+ # Please remember to #set_changed() the Auth.manager\r
# when modifying data\r
attr_reader :data\r
attr_writer :login_by_mask\r
# Reset the login-by-mask option\r
#\r
def reset_login_by_mask\r
- @login_by_mask = Auth.authmanager.bot.config['auth.login_by_mask'] unless defined?(@login_by_mask)\r
+ @login_by_mask = Auth.manager.bot.config['auth.login_by_mask'] unless defined?(@login_by_mask)\r
end\r
\r
# Reset the autologin option\r
#\r
def reset_autologin\r
- @autologin = Auth.authmanager.bot.config['auth.autologin'] unless defined?(@autologin)\r
+ @autologin = Auth.manager.bot.config['auth.autologin'] unless defined?(@autologin)\r
end\r
\r
# Do we allow automatic logging in?\r
end\r
\r
\r
- # This is the AuthManagerClass singleton, used to manage User/BotUser connections and\r
- # everything\r
+ # This is the ManagerClass singleton, used to manage\r
+ # Irc::User/Irc::Bot::Auth::BotUser connections and everything\r
#\r
- class AuthManagerClass\r
+ class ManagerClass\r
\r
include Singleton\r
\r
end\r
\r
# Creates a new transient BotUser associated with Irc::User _user_,\r
- # automatically logging him in\r
+ # automatically logging him in. Note that transient botuser creation can\r
+ # fail, typically if we don't have the complete user netmask (e.g. for\r
+ # messages coming in from a linkbot)\r
#\r
def create_transient_botuser(user)\r
ircuser = user.to_irc_user\r
- bu = BotUser.new(ircuser, :transient => true, :masks => ircuser)\r
- bu.login(ircuser)\r
- @transients << bu\r
+ bu = everyone\r
+ begin\r
+ bu = BotUser.new(ircuser, :transient => true, :masks => ircuser)\r
+ bu.login(ircuser)\r
+ @transients << bu\r
+ rescue\r
+ warning "failed to create transient for #{user}"\r
+ error $!\r
+ end\r
return bu\r
end\r
\r
\r
end\r
\r
- # Returns the only instance of AuthManagerClass\r
+ # Returns the only instance of ManagerClass\r
#\r
- def Auth.authmanager\r
- return AuthManagerClass.instance\r
+ def Auth.manager\r
+ return ManagerClass.instance\r
end\r
\r
end\r
# associated with the receiver\r
#\r
def botuser\r
- Irc::Bot::Auth.authmanager.irc_to_botuser(self)\r
+ Irc::Bot::Auth.manager.irc_to_botuser(self)\r
end\r
\r
# Bot-specific data can be stored with Irc::Users. This is\r
def set_bot_data(key,value=nil,&block)\r
if not block_given?\r
self.botuser.data[key]=value\r
- Irc::Bot::Auth.authmanager.set_changed\r
+ Irc::Bot::Auth.manager.set_changed\r
return value\r
end\r
if value and not bot_data.has_key?(key)\r
begin\r
r = yield bot_data(key)\r
ensure\r
- Irc::Bot::Auth.authmanager.set_changed\r
+ Irc::Bot::Auth.manager.set_changed\r
end\r
return r\r
end\r