Code for Gramps to communicate with Gramps-Connect
svn: r20020
This commit is contained in:
parent
e98c78e136
commit
cd5da12282
29
src/webapp/connection.py
Normal file
29
src/webapp/connection.py
Normal file
@ -0,0 +1,29 @@
|
||||
import urllib
|
||||
import urllib2
|
||||
|
||||
class Connection(object):
|
||||
"""
|
||||
>>> conn = Connection()
|
||||
>>> response = conn.login("http://blankfamily.us/login/", "username", "password")
|
||||
"""
|
||||
def login(self, login_url, username, password):
|
||||
cookies = urllib2.HTTPCookieProcessor()
|
||||
opener = urllib2.build_opener(cookies)
|
||||
urllib2.install_opener(opener)
|
||||
opener.open(login_url)
|
||||
try:
|
||||
self.token = [x.value for x in cookies.cookiejar if x.name == 'csrftoken'][0]
|
||||
except IndexError:
|
||||
return Exception("no csrftoken")
|
||||
params = dict(username=username,
|
||||
password=password,
|
||||
next="/",
|
||||
csrfmiddlewaretoken=self.token,
|
||||
)
|
||||
login_data = urllib.urlencode(params)
|
||||
request = urllib2.Request(login_url, login_data)
|
||||
response = urllib2.urlopen(request)
|
||||
if response.geturl() == login_url:
|
||||
raise Exception("Invalid password")
|
||||
return response
|
||||
|
Loading…
Reference in New Issue
Block a user