####################################################
# by wiebe @ QuakeNet
#
####################################################


####################################################
# login:help:msg
####################################################
bind msgm fvlomn|fvlomn "help login" login:help:msgm
proc login:help:msgm { n u h t } {
  if {[matchattr $h bkZ]} { return 0 }
  lappend o "login: usage login <account> <password>"
  lappend o "login: logs you in to an account on the bot. only available for global +L accounts."
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "login: " } }
  putcmdlog "($n!$u) !$h! help login"
  return 1
}


####################################################
# login:msg
####################################################
bind msg -|- login login:msg
proc login:msg { n u h t } {
  if {[matchattr $h bkZ]} { return 0 }
  set o [login:login $n $u $h $t]
  if {[string equal [info procs cnotice] ""]} { foreach l $o { puthelp "NOTICE $n :$l" }
  } else { foreach l $o { cnotice $n $l puthelp "login: " } }
}


####################################################
# login:login
####################################################
proc login:login { n u h t } {
  set t [split $t]; set a [lindex $t 0]; set p [lindex $t 1]; set o ""
  if {![onchan $n] || [onchansplit $n] || ![validuser $a] || [string equal $p ""] || ![matchattr $a L] || [matchattr $h bZ]} {
    # no chance
  } elseif {![passwdok $a $p]} {
    putloglev d * "FAILED login attempt from $n ($u) !$h! using account $a"
  } else {
    if {![string equal [info procs sethand] ""] && [sethand $n $a]} {
      lappend o "login: succesfully logged in as $a"
      putcmdlog "($n!$u) login $a"
    } else { lappend o "login: failed to log you in" }
  }
  return $o
}

set userflagdb(login) {
  "login.tcl: global L=allow use of login command"
}


set scriptdb(login) {
  "provides login command"
}


