var tbody = new Element("tbody");
boxtable.appendChild(tbody); /* stupid IE */
- function createRow(label, e2) {
+ function createRow(label, e2, style) {
var r = new Element("tr");
tbody.appendChild(r);
var d2 = new Element("td");
r.appendChild(d2);
- d2.appendChild(e2);
+
+ if($defined(e2))
+ d2.appendChild(e2);
+ if($defined(style)) {
+ r.setStyles(style);
+ return [r, d2];
+ }
+
return d2;
}
var chan = new Element("input");
createRow("Channels:", chan);
+ if(qwebirc.auth.enabled() && qwebirc.auth.passAuth()) {
+ var authRow = createRow("Auth to services:");
+ var checkBox = qwebirc.util.createInput("checkbox", authRow, "connect_auth_to_services", false);
+
+ var usernameBox = new Element("input");
+ var usernameRow = createRow("Username:", usernameBox, {display: "none"})[0];
+
+ var passwordBox = new Element("input");
+ var passwordRow = createRow("Password:", passwordBox, {display: "none"})[0];
+
+ checkBox.addEvent("click", function(e) { qwebirc.ui.authShowHide(checkBox, authRow, usernameBox, usernameRow, passwordRow) });
+ }
+
var connbutton = new Element("input", {"type": "submit"});
connbutton.set("value", "Connect");
- var r = createRow(undefined, connbutton)
- if(qwebirc.auth.enabled() && !qwebirc.auth.loggedin()) {
+ var r = createRow(undefined, connbutton);
+
+ if(qwebirc.auth.enabled() && qwebirc.auth.quakeNetAuth() && !qwebirc.auth.loggedin()) {
var auth = new Element("input", {"type": "submit", "value": "Log in"});
r.appendChild(auth);
auth.addEvent("click", qwebirc.ui.AuthLogin);
parentElement.removeChild(outerbox);
- callback({"nickname": nickname, "autojoin": chans});
+ var data = {"nickname": nickname, "autojoin": chans};
+ if($defined(usernameBox) && usernameBox.value && passwordBox.value)
+ data["serverPassword"] = usernameBox.value + " " + passwordBox.value;
+
+ callback(data);
}.bind(this));
nick.set("value", initialNickname);
nick.focus();
}
+
+qwebirc.ui.authShowHide = function(checkbox, authRow, usernameBox, usernameRow, passwordRow) {
+ var visible = checkbox.checked;
+ var display = visible?null:"none";
+ usernameRow.setStyle("display", display);
+ passwordRow.setStyle("display", display);
+
+ if(visible) {
+// authRow.parentNode.setStyle("display", "none");
+ usernameBox.focus();
+ }
+}
raise AJAXException, "Nickname not supplied."
nick = ircclient.irc_decode(nick[0])
+ password = request.args.get("pass")
+ if password is not None:
+ password = ircclient.irc_decode(password[0])
+
for i in xrange(10):
id = get_session_id()
if not Sessions.get(id):
self.__connect_hit()
def proceed(hostname):
- client = ircclient.createIRC(session, nick=nick, ident=ident, ip=ip, realname=realname, perform=perform, hostname=hostname)
+ kwargs = dict(nick=nick, ident=ident, ip=ip, realname=realname, perform=perform, hostname=hostname)
+ if password is not None:
+ kwargs["password"] = password
+
+ client = ircclient.createIRC(session, **kwargs)
session.client = client
if config.WEBIRC_MODE != "hmac":
self.lastError = None
f = self.factory.ircinit
- nick, ident, ip, realname, hostname = f["nick"], f["ident"], f["ip"], f["realname"], f["hostname"]
+ nick, ident, ip, realname, hostname, pass_ = f["nick"], f["ident"], f["ip"], f["realname"], f["hostname"], f.get("pass")
self.__nickname = nick
self.__perform = f.get("perform")
self.write("USER %s bleh bleh :%s - %s" % (ident, dispip, realname))
+ if pass_ is not None:
+ self.write("PASS :%s" % pass_)
self.write("NICK %s" % nick)
self.factory.client = self