From e5121083389fc295ab80cf292242a5850eac25ed Mon Sep 17 00:00:00 2001 From: YSelf Tool Date: Fri, 25 Sep 2015 21:56:06 +0200 Subject: [PATCH] Added optional support for login domains --- simplemediawiki.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/simplemediawiki.py b/simplemediawiki.py index b7591d1..add050c 100644 --- a/simplemediawiki.py +++ b/simplemediawiki.py @@ -217,16 +217,17 @@ def tester(self, api_url): return self._api_url return None - def login(self, user, passwd): + def login(self, user, passwd, domain=None): """ Logs into the wiki with username *user* and password *passwd*. Returns ``True`` on successful login. :param user: username :param passwd: password + :param domain: domain (optional) :returns: ``True`` on successful login, otherwise ``False`` """ - def do_login(self, user, passwd, token=None): + def do_login(self, user, passwd, token=None, domain=None): """ Login function that handles CSRF protection (see `MediaWiki bug 23076`_). Returns ``True`` on successful login. @@ -237,6 +238,8 @@ def do_login(self, user, passwd, token=None): data = {'action': 'login', 'lgname': user, 'lgpassword': passwd} + if domain: + data['lgdomain'] = domain if token: data['lgtoken'] = token result = self.call(data) @@ -244,11 +247,11 @@ def do_login(self, user, passwd, token=None): self._high_limits = None return True elif result['login']['result'] == 'NeedToken' and not token: - return do_login(self, user, passwd, result['login']['token']) + return do_login(self, user, passwd, result['login']['token'], domain) else: return False - return do_login(self, user, passwd) + return do_login(self, user, passwd, domain=domain) def logout(self): """