Posted to tcl by gg at Fri Sep 20 14:03:02 GMT 2019view raw

  1. proc znc:request { nick host handle chan text } {
  2. global scriptCommandPrefix zncPasswordSecurityLevel zncPasswordLength zncnetworkname zncDefaultUserModules zncDefaultNetworkModules usePreconfiguredNetworks
  3. set username [lindex $text 0]
  4. set email [lindex $text 1]
  5. set networkname [lindex $text 2]
  6. set server [lindex $text 3]
  7. set port [lindex $text 4]
  8. if { $email == ""} {
  9. puthelp "NOTICE $nick :${scriptCommandPrefix}request syntax is \"${scriptCommandPrefix}request <zncusername> <e-mail-address> \[<networkname> \[<serveraddress> <\[+\]port>\]\]\" for more please use \"${scriptCommandPrefix}help reqest\""
  10. return
  11. } else {
  12. set password [znc:helpfunction:generatePassword $zncPasswordSecurityLevel $zncPasswordLength ]
  13. if [ adduser $username ] {
  14. setuser $username COMMENT $email
  15. chattr $username +ZC
  16. znc:controlpanel:AddUser $username $password
  17. znc:blockuser:block $username
  18. znc:helpfunction:loadModuleList $username $zncDefaultUserModules
  19. if { $networkname != ""} {
  20. set preServer ""
  21. if { $usePreconfiguredNetworks } {
  22. set preServer [array names knownNetworks -exact [string tolower $networkname]]
  23. }
  24. znc:controlpanel:AddNetwork $username $networkname
  25. znc:helpfunction:loadNetModuleList $username $networkname $zncDefaultNetworkModules
  26. if { $preServer != "" } {
  27. foreach {networkname networkserver} [array get knownNetworks [string tolower $networkname]] {
  28. znc:controlpanel:AddServer $username $networkname $networkserver
  29. }
  30. } else {
  31. if { $port != "" } {
  32. znc:controlpanel:AddServer $username $networkname "$server $port"
  33. }
  34. }
  35. }
  36. puthelp "NOTICE $nick :Hey $nick, your request for $username is noticed and after confirm by an administrator you'll get an email with all needed data."
  37. } else {
  38. puthelp "NOTICE $nick :Sry, but your wanted username is already in use..."
  39. }
  40. }
  41. }