closed issue 995, thanks Peter
This commit is contained in:
1 parent
f7b5922fd9
commit
3ea23a97ed
2 files changed
+22
-13
No files matched your search
@@ -1 +1 @@
|
|||||||
Version 2.0.9 (2012-09-28 09:25:21) dev
|
Version 2.0.9 (2012-09-28 12:37:56) dev
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user