Mjbmr has uploaded a new change for review.
https://gerrit.wikimedia.org/r/189433
Change subject: Caching password, allow switching logged in user to/from sysop
......................................................................
Caching password, allow switching logged in user to/from sysop
Change-Id: I730aabd23ac6061de6dd065b840fa8cec1e41802
---
M pywikibot/site.py
1 file changed, 12 insertions(+), 2 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/33/189433/1
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 2a347bb..6381736 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -1513,6 +1513,7 @@
self._siteinfo = Siteinfo(self)
self._paraminfo = api.ParamInfo(self)
self.tokens = TokenWallet(self)
+ self._passwords = {}
def __getstate__(self):
"""Remove TokenWallet before pickling, for security reasons."""
@@ -1661,13 +1662,22 @@
return
except api.APIError: # May occur if you are not logged in (no API
read permissions).
pass
- loginMan = api.LoginManager(site=self, sysop=sysop,
- user=self._username[sysop])
+ password = None
+ if self._username[sysop] in self._passwords:
+ password = self._passwords[self._username[sysop]]
+ loginMan = api.LoginManager(site=self, password=password,
+ sysop=sysop, user=self._username[sysop])
if loginMan.login(retry=True):
+ self._passwords[loginMan.username] = loginMan.password
self._username[sysop] = loginMan.username
if hasattr(self, "_userinfo"):
del self._userinfo
self.getuserinfo()
+ if sysop:
+ self._username[not sysop] = loginMan.username
+ else:
+ if 'sysop' not in self.userinfo['groups']:
+ self._username[not sysop] = loginMan.username
self._loginstatus = (LoginStatus.AS_SYSOP
if sysop else LoginStatus.AS_USER)
else:
--
To view, visit https://gerrit.wikimedia.org/r/189433
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I730aabd23ac6061de6dd065b840fa8cec1e41802
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Mjbmr <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits