closed issue 995, thanks Peter

This commit is contained in:
Massimo committed 2012-09-28 12:38:03 -05:00
1 parent f7b5922fd9
commit 3ea23a97ed
2 files changed
+22 -13

No files matched your search

+1 -1
View File
@@ -1 +1 @@
Version 2.0.9 (2012-09-28 09:25:21) dev Version 2.0.9 (2012-09-28 12:37:56) dev
+21 -12
View File
@@ -27,7 +27,7 @@ class DropboxAccount(object):
key="...", key="...",
secret="...", secret="...",
access_type="...", access_type="...",
url = "http://localhost:8000/%s/default/user/login" % request.application) login_url = "http://localhost:8000/%s/default/user/login" % request.application)
when logged in when logged in
client = auth.settings.login_form.client client = auth.settings.login_form.client
""" """
@@ -53,15 +53,20 @@ class DropboxAccount(object):
def get_user(self): def get_user(self):
request = self.request request = self.request
token = current.session.dropbox_token if not current.session.dropbox_request_token:
if not token:
return None
try:
self.sess.set_token(token[0],token[1])
except:
# invalid token, should never happen
return None return None
elif not current.session.dropbox_access_token:
request_token = current.session.dropbox_request_token
self.sess.set_request_token(request_token[0],request_token[1])
access_token = self.sess.obtain_access_token(self.sess.token)
current.session.dropbox_access_token = \
(access_token.key,access_token.secret)
else: else:
access_token = current.session.dropbox_access_token
self.sess.set_token(access_token[0],access_token[1])
user = Storage() user = Storage()
self.client = client.DropboxClient(self.sess) self.client = client.DropboxClient(self.sess)
data = self.client.account_info() data = self.client.account_info()
@@ -75,17 +80,21 @@ class DropboxAccount(object):
return user return user
def login_form(self): def login_form(self):
token = self.sess.obtain_request_token()
current.session.dropbox_token = (token.key,token.secret) request_token = self.sess.obtain_request_token()
dropbox_url = self.sess.build_authorize_url(token,self.login_url) current.session.dropbox_request_token = \
(request_token.key,request_token.secret)
dropbox_url = self.sess.build_authorize_url(request_token,
self.login_url)
redirect(dropbox_url) redirect(dropbox_url)
form = IFRAME(_src=dropbox_url, form = IFRAME(_src=dropbox_url,
_scrolling="no", _scrolling="no",
_frameborder="no", _frameborder="no",
_style="width:400px;height:240px;") _style="width:400px;height:240px;")
return form return form
def logout_url(self, next = "/"): def logout_url(self, next = "/"):
current.session.dropbox_token=None current.session.dropbox_request_token=None
current.session.auth=None current.session.auth=None
redirect('https://www.dropbox.com/logout') redirect('https://www.dropbox.com/logout')
return next return next