non-anonymous authentication, fixed #1185
This commit is contained in:
parent
45e0615cd0
commit
36c5269b0e
6 changed files with 165 additions and 94 deletions
2
Makefile
2
Makefile
|
@ -22,7 +22,7 @@ install:all
|
|||
$(INSTALL) -m644 src/xmpp/* $(DATADIR)/poezio/src/xmpp/
|
||||
|
||||
echo "#!/usr/bin/env sh" > $(BINDIR)/poezio
|
||||
echo "cd $(DATADIR)/poezio/src/ && python client.py" >> $(BINDIR)/poezio
|
||||
echo "cd $(DATADIR)/poezio/src/ && python poezio.py" >> $(BINDIR)/poezio
|
||||
chmod 755 $(BINDIR)/poezio
|
||||
|
||||
for localename in `find locale/ -maxdepth 1 -type d | grep -v '.svn' | sed 's:locale/::g'` ; do \
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[Poezio]
|
||||
|
||||
# the server. Make sure the server you're using accepts anonymous authentification
|
||||
server = louiz.org
|
||||
|
||||
|
@ -11,12 +12,22 @@ resource = poezio
|
|||
# the nick you will use when joining a room with no associated nick
|
||||
default_nick = poezio
|
||||
|
||||
# Jabber identifiant. Specify it only if you want to connect using an existing
|
||||
# account on a server. This is optional and useful only for some features,
|
||||
# like room administration, nickname registration.
|
||||
# The 'server' option will be ignored if you specify a JID (Jabber identifiant)
|
||||
# It should be in the form nickname@server.tld
|
||||
jid =
|
||||
|
||||
# A password is needed only if you specified a jid. It will be ignored otherwise
|
||||
password =
|
||||
|
||||
# the rooms you will join automatically on startup, with associated nickname or not
|
||||
rooms = poezio@conference.codingteam.net:discussion@kikoo.louiz.org
|
||||
|
||||
# PROXY
|
||||
# set to true if you want to use an http proxy server
|
||||
# if false, no proxy will be used and the proxy_* settings have no effect
|
||||
# if false, no proxy will be used and the proxy_* settings will have no effect
|
||||
use_proxy = false
|
||||
proxy_server =
|
||||
proxy_port =
|
||||
|
@ -45,7 +56,7 @@ highlight_on =
|
|||
# 0: the notices will NEVER be displayed
|
||||
# n: On any other number, the notices will only be displayed
|
||||
# if the user involved has talked since the last n seconds
|
||||
# The join messages will be hidden only if hide_exit_join is 0
|
||||
# The quit messages will be hidden only if hide_exit_join is 0
|
||||
# if the value is incorrect, -1 is assumed
|
||||
hide_exit_join = -1 # all quit and join notices will be displayed
|
||||
hide_status_change = 120 # status changes won't be displayed unless
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
cd src/ && python client.py "$@"
|
||||
cd src/ && python poezio.py "$@"
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-02-13 17:55+0100\n"
|
||||
"POT-Creation-Date: 2010-05-12 15:08+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -16,128 +16,99 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/gui.py:125
|
||||
#: src/connection.py:91
|
||||
#, python-format
|
||||
msgid "Your nickname is %s"
|
||||
msgid ""
|
||||
"Error: Could not authenticate. Please make sure the server you chose (%s) "
|
||||
"supports anonymous authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:126
|
||||
#, python-format
|
||||
msgid "%s is in the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:134
|
||||
#, python-format
|
||||
msgid "%(nick)s joined the room %(roomname)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:141
|
||||
#, python-format
|
||||
msgid "%(old_nick)s is now known as %(new_nick)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:153
|
||||
#, python-format
|
||||
msgid "You have been kicked by %(by)s. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:155
|
||||
#, python-format
|
||||
msgid "You have been kicked. Reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:158
|
||||
#, python-format
|
||||
msgid "%(nick)s has been kicked by %(by)s. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:160
|
||||
#, python-format
|
||||
msgid "%(nick)s has been kicked. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:165
|
||||
#, python-format
|
||||
msgid "%s has left the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:170
|
||||
#, python-format
|
||||
msgid "%(nick)s changed his/her status : %(a)s, %(b)s, %(c)s, %(d)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:191
|
||||
#: src/gui.py:67
|
||||
msgid "OLOL, this is SOOO recursive"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:192
|
||||
#: src/gui.py:68
|
||||
msgid ""
|
||||
"Usage: /join [room_name][/nick]\n"
|
||||
"Usage: /join [room_name][/nick] [password]\n"
|
||||
"Join: Join the specified room. You can specify a nickname after a slash (/). "
|
||||
"If no nickname is specified, you will use the default_nick in the "
|
||||
"configuration file. You can omit the room name: you will then join the room "
|
||||
"you're looking at (useful if you were kicked). Examples:\n"
|
||||
"you're looking at (useful if you were kicked). You can also provide a "
|
||||
"password to join the room.\n"
|
||||
"Examples:\n"
|
||||
"/join room@server.tld\n"
|
||||
"/join room@server.tld/John\n"
|
||||
"/join /me_again\n"
|
||||
"/join"
|
||||
"/join\n"
|
||||
"/join room@server.tld/my_nick password\n"
|
||||
"/join / pass"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:193
|
||||
#: src/gui.py:69
|
||||
msgid ""
|
||||
"Usage: /quit\n"
|
||||
"Quit: Just disconnect from the server and exit poezio."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:194
|
||||
#: src/gui.py:70
|
||||
msgid ""
|
||||
"Usage: /exit\n"
|
||||
"Exit: Just disconnect from the server and exit poezio."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:195
|
||||
#: src/gui.py:71
|
||||
msgid ""
|
||||
"Usage: /next\n"
|
||||
"Next: Go to the next room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:196
|
||||
#: src/gui.py:72
|
||||
msgid ""
|
||||
"Usage: /n\n"
|
||||
"N: Go to the next room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:197
|
||||
#: src/gui.py:73
|
||||
msgid ""
|
||||
"Usage: /prev\n"
|
||||
"Prev: Go to the previous room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:198
|
||||
#: src/gui.py:74
|
||||
msgid ""
|
||||
"Usage: /p\n"
|
||||
"P: Go to the previous room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:199
|
||||
#: src/gui.py:75
|
||||
msgid ""
|
||||
"Usage: /win <number>\n"
|
||||
"Win: Go to the specified room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:200
|
||||
#: src/gui.py:76
|
||||
msgid ""
|
||||
"Usage: /w <number>\n"
|
||||
"W: Go to the specified room."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:201
|
||||
#: src/gui.py:77
|
||||
msgid "Usage: /ignore <nickname>\\Ignore: Ignore a specified nickname."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:78
|
||||
msgid ""
|
||||
"Usage: /unignore <nickname>\\Unignore: Remove the specified nickname from "
|
||||
"the ignore list."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:79
|
||||
msgid ""
|
||||
"Usage: /part [message]\n"
|
||||
"Part: disconnect from a room. You can specify an optional message."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:202
|
||||
#: src/gui.py:80
|
||||
msgid ""
|
||||
"Usage: /show <availability> [status]\n"
|
||||
"Show: Change your availability and (optionaly) your status. The "
|
||||
|
@ -146,45 +117,45 @@ msgid ""
|
|||
"message"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:203
|
||||
#: src/gui.py:81
|
||||
msgid ""
|
||||
"Usage: /away [message]\n"
|
||||
"Away: Sets your availability to away and (optional) sets your status "
|
||||
"message. This is equivalent to \"/show away [message]\""
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:204
|
||||
#: src/gui.py:82
|
||||
msgid ""
|
||||
"Usage: /busy [message]\n"
|
||||
"Busy: Sets your availability to busy and (optional) sets your status "
|
||||
"message. This is equivalent to \"/show busy [message]\""
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:205
|
||||
#: src/gui.py:83
|
||||
msgid ""
|
||||
"Usage: /avail [message]\n"
|
||||
"Avail: Sets your availability to available and (optional) sets your status "
|
||||
"message. This is equivalent to \"/show available [message]\""
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:206
|
||||
#: src/gui.py:84
|
||||
msgid ""
|
||||
"Usage: /available [message]\n"
|
||||
"Available: Sets your availability to available and (optional) sets your "
|
||||
"status message. This is equivalent to \"/show available [message]\""
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:207
|
||||
#: src/gui.py:85
|
||||
msgid ""
|
||||
"Usage: /bookmark [roomname][/nick]\n"
|
||||
"Bookmark: Bookmark the specified room (you will then auto-join it on each "
|
||||
"poezio start). This commands uses the same syntaxe as /nick. Type /help nick "
|
||||
"poezio start). This commands uses the same syntaxe as /join. Type /help join "
|
||||
"for syntaxe examples. Note that when typing \"/bookmark\" on its own, the "
|
||||
"room will be bookmarked with the nickname you're currently using in this "
|
||||
"room (instead of default_nick)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:208
|
||||
#: src/gui.py:86
|
||||
msgid ""
|
||||
"Usage: /set <option> [value]\n"
|
||||
"Set: Sets the value to the option in your configuration file. You can, for "
|
||||
|
@ -193,64 +164,131 @@ msgid ""
|
|||
"(nothing) by providing no [value] after <option>."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:209
|
||||
#: src/gui.py:87
|
||||
msgid ""
|
||||
"Usage: /kick <nick> [reason]\n"
|
||||
"Kick: Kick the user with the specified nickname. You also can give an "
|
||||
"optional reason."
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:211
|
||||
#: src/gui.py:88
|
||||
msgid ""
|
||||
"Usage: /topic <subject>\n"
|
||||
"Topic: Change the subject of the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:89
|
||||
msgid ""
|
||||
"Usage: /nick <nickname>\n"
|
||||
"Nick: Change your nickname in the current room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:311
|
||||
#: src/gui.py:193
|
||||
msgid "Welcome on Poezio \\o/!"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:312
|
||||
#: src/gui.py:194
|
||||
#, python-format
|
||||
msgid "Your JID is %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:353
|
||||
#: src/gui.py:229
|
||||
#, python-format
|
||||
msgid "Error: %(code)s-%(msg)s: %(body)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:231
|
||||
msgid ""
|
||||
"To provide a password in order to join the room, type \"/join / password"
|
||||
"\" (replace \"password\" by the real password)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:246
|
||||
#, python-format
|
||||
msgid "message received for a non-existing room: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:358
|
||||
#: src/gui.py:252
|
||||
#, python-format
|
||||
msgid "%(nick)s changed the subject to: %(subject)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:382
|
||||
#: src/gui.py:254
|
||||
#, python-format
|
||||
msgid "presence received for a non-existing room: %s"
|
||||
msgid "The subject is: %(subject)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:384
|
||||
#: src/gui.py:284
|
||||
#, python-format
|
||||
msgid "Error: %s"
|
||||
msgid "Your nickname is %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:421
|
||||
#: src/gui.py:286
|
||||
#, python-format
|
||||
msgid "%s is in the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:296
|
||||
#, python-format
|
||||
msgid "%(nick)s joined the room %(roomname)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:302
|
||||
#, python-format
|
||||
msgid "%(old_nick)s is now known as %(new_nick)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:317
|
||||
#, python-format
|
||||
msgid "You have been kicked by %(by)s. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:319
|
||||
#, python-format
|
||||
msgid "You have been kicked. Reason: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:322
|
||||
#, python-format
|
||||
msgid "%(nick)s has been kicked by %(by)s. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:324
|
||||
#, python-format
|
||||
msgid "%(nick)s has been kicked. Reason: %(reason)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:333
|
||||
#, python-format
|
||||
msgid "%s has left the room"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:343
|
||||
#, python-format
|
||||
msgid "%(nick)s changed his/her status : %(a)s, %(b)s, %(c)s, %(d)s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:388
|
||||
#, python-format
|
||||
msgid "Error: unknown command (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:397
|
||||
msgid "Available commands are:"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:424
|
||||
#: src/gui.py:400
|
||||
msgid ""
|
||||
"\n"
|
||||
"Type /help <command_name> to know what each command does"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:429
|
||||
#: src/gui.py:405
|
||||
#, python-format
|
||||
msgid "Unknown command: %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui.py:493
|
||||
#: src/gui.py:470
|
||||
#, python-format
|
||||
msgid "already in room [%s]"
|
||||
msgstr ""
|
||||
|
|
|
@ -49,7 +49,10 @@ class Connection(threading.Thread):
|
|||
threading.Thread.__init__(self)
|
||||
self.handler = Handler()
|
||||
self.daemon = True # exit the program when this thread exits
|
||||
self.server = server
|
||||
if config.get('jid', '') == '':
|
||||
self.server = server
|
||||
else:
|
||||
self.server = jid_get_domain(config.get('jid', ''))
|
||||
self.resource = resource
|
||||
self.online = 0 # 1:connected, 2:auth confirmed
|
||||
self.jid = '' # we don't know our jid yet (anon account)
|
||||
|
@ -65,9 +68,10 @@ class Connection(threading.Thread):
|
|||
if not self.connect_to_server(self.server, self.port):
|
||||
self.handler.emit('error', msg='Could not connect to server')
|
||||
sys.exit(-1)
|
||||
if not self.authenticate():
|
||||
if not self.authenticate(config.get('jid', '') == ''):
|
||||
self.handler.emit('error', msg='Could not authenticate to server')
|
||||
sys.exit(-1)
|
||||
# TODO, become invisible before sendInitPresence
|
||||
self.client.sendInitPresence(requestRoster=0)
|
||||
self.online = 1 # 2 when confirmation of our auth is received
|
||||
self.register_handlers()
|
||||
|
@ -75,6 +79,9 @@ class Connection(threading.Thread):
|
|||
self.process()
|
||||
|
||||
def connect_to_server(self, server, port):
|
||||
"""
|
||||
Connect to the server
|
||||
"""
|
||||
if config.get('use_proxy','false') == 'true':
|
||||
return self.client.connect((server, port),
|
||||
{'host': config.get("proxy_server", ""),
|
||||
|
@ -99,10 +106,15 @@ class Connection(threading.Thread):
|
|||
authenticate. Please make sure the server you chose \
|
||||
(%s) supports anonymous authentication'
|
||||
% (config.get('server', ''))))
|
||||
return None
|
||||
return False
|
||||
else:
|
||||
logger.error('Non-anonymous connections not handled currently')
|
||||
return None
|
||||
password = config.get('password', '')
|
||||
jid = config.get('jid', '')
|
||||
from common import debug
|
||||
debug(config.get('server', ''))
|
||||
auth = self.client.auth(jid_get_node(jid), password, "salut")
|
||||
debug(repr(auth))
|
||||
return auth
|
||||
|
||||
def register_handlers(self):
|
||||
"""
|
||||
|
@ -194,3 +206,13 @@ class Connection(threading.Thread):
|
|||
if not connection:
|
||||
return
|
||||
self.handler.emit('send-time', iq_obj=iq)
|
||||
|
||||
def jid_get_node(jid):
|
||||
if isinstance(jid, basestring):
|
||||
jid = xmpp.JID(jid)
|
||||
return jid.getNode()
|
||||
|
||||
def jid_get_domain(jid):
|
||||
if isinstance(jid, basestring):
|
||||
jid = xmpp.JID(jid)
|
||||
return jid.getDomain()
|
||||
|
|
|
@ -306,7 +306,7 @@ Avail: Sets your availability to available and (optional) sets your status
|
|||
code = error.getAttr('code')
|
||||
typ = error.getAttr('type')
|
||||
body = error.getTag('text').getData()
|
||||
self.add_info(r, _('Error: %(code)s-%(msg)s: %(body)s' %
|
||||
self.add_info(room, _('Error: %(code)s-%(msg)s: %(body)s' %
|
||||
{'msg':msg, 'code':code, 'body':body}))
|
||||
if code == '401':
|
||||
self.add_info(room, _("""To provide a password in order
|
||||
|
|
Loading…
Reference in a new issue