# File lib/rbot/core/auth.rb, line 359
  def help(cmd, topic="")
    case cmd
    when "login"
      return _("login [<botuser>] [<pass>]: logs in to the bot as botuser <botuser> with password <pass>. When using the full form, you must contact the bot in private. <pass> can be omitted if <botuser> allows login-by-mask and your netmask is among the known ones. if <botuser> is omitted too autologin will be attempted")
    when "whoami"
      return _("whoami: names the botuser you're linked to")
    when "who"
      return _("who is <user>: names the botuser <user> is linked to")
    when /^permission/
      case topic
      when "syntax"
        return _("a permission is specified as module::path::to::cmd; when you want to enable it, prefix it with +; when you want to disable it, prefix it with -; when using the +reset+ command, do not use any prefix")
      when "set", "reset", "[re]set", "(re)set"
        return _("permissions [re]set <permission> [in <channel>] for <user>: sets or resets the permissions for botuser <user> in channel <channel> (use ? to change the permissions for private addressing)")
      when "view"
        return _("permissions view [for <user>]: display the permissions for user <user>")
      when "search"
        return _("permissions search <pattern>: display the permissions associated with the commands matching <pattern>")
      else
        return _("permission topics: syntax, (re)set, view, search")
      end
    when "user"
      case topic
      when "show"
        return _("user show <what> : shows info about the user; <what> can be any of autologin, login-by-mask, netmasks")
      when /^(en|dis)able/
        return _("user enable|disable <what> : turns on or off <what> (autologin, login-by-mask)")
      when "set"
        return _("user set password <blah> : sets the user password to <blah>; passwords can only contain upper and lowercase letters and numbers, and must be at least 4 characters long")
      when "add", "rm"
        return _("user add|rm netmask <mask> : adds/removes netmask <mask> from the list of netmasks known to the botuser you're linked to")
      when "reset"
        return _("user reset <what> : resets <what> to the default values. <what> can be +netmasks+ (the list will be emptied), +autologin+ or +login-by-mask+ (will be reset to the default value) or +password+ (a new one will be generated and you'll be told in private)")
      when "tell"
        return _("user tell <who> the password for <botuser> : contacts <who> in private to tell him/her the password for <botuser>")
      when "create"
        return _("user create <name> <password> : create botuser named <name> with password <password>. The password can be omitted, in which case a random one will be generated. The <name> should only contain alphanumeric characters and the underscore (_)")
      when "list"
        return _("user list : lists all the botusers")
      when "destroy"
        return _("user destroy <botuser> : destroys <botuser>. This function %{highlight}must%{highlight} be called in two steps. On the first call <botuser> is queued for destruction. On the second call, which must be in the form 'user confirm destroy <botuser>', the botuser will be destroyed. If you want to cancel the destruction, issue the command 'user cancel destroy <botuser>'") % {:highlight => Bold}
      else
        return _("user topics: show, enable|disable, add|rm netmask, set, reset, tell, create, list, destroy")
      end
    when "auth"
      return _("auth <masterpassword>: log in as the bot owner; other commands: login, whoami, permissions syntax, permissions [re]set, permissions view, user, meet, hello, allow, prevent")
    when "meet"
      return _("meet <nick> [as <user>]: creates a bot user for nick, calling it user (defaults to the nick itself)")
    when "hello"
      return _("hello: creates a bot user for the person issuing the command")
    when "allow"
      return _("allow <user> to do <sample command> [<where>]: gives botuser <user> the permissions to execute a command such as the provided sample command (in private or in channel, according to the optional <where>)")
    when "deny"
      return _("deny <user> from doing <sample command> [<where>]: removes from botuser <user> the permissions to execute a command such as the provided sample command (in private or in channel, according to the optional <where>)")
    else
      return _("auth commands: auth, login, whoami, who, permission[s], user, meet, hello, allow, deny")
    end
  end