Fix #549 - Deauthorize OAuth applications

This commit is contained in:
Jessica Tallon
2014-10-01 19:45:53 +01:00
parent 36e27c4b76
commit 7e15632b5a
8 changed files with 124 additions and 2 deletions

View File

@@ -28,3 +28,5 @@ add_route('mediagoblin.edit.verify_email', '/edit/verify_email/',
'mediagoblin.edit.views:verify_email')
add_route('mediagoblin.edit.email', '/edit/email/',
'mediagoblin.edit.views:change_email')
add_route('mediagoblin.edit.deauthorize_applications', '/edit/deauthorize/',
'mediagoblin.edit.views:deauthorize_applications')

View File

@@ -47,7 +47,7 @@ from mediagoblin.tools.text import (
convert_to_tag_list_of_dicts, media_tags_as_string)
from mediagoblin.tools.url import slugify
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
from mediagoblin.db.models import User
from mediagoblin.db.models import User, Client, AccessToken
import mimetypes
@@ -258,6 +258,34 @@ def edit_account(request):
{'user': user,
'form': form})
@require_active_login
def deauthorize_applications(request):
""" Deauthroize OAuth applications """
if request.method == 'POST' and "application" in request.form:
token = request.form["application"]
access_token = AccessToken.query.filter_by(token=token).first()
if access_token is None:
messages.add_message(
request,
messages.ERROR,
_("Unknown application, not able to deauthorize")
)
else:
access_token.delete()
messages.add_message(
request,
messages.SUCCESS,
_("Application has been deauthorized")
)
access_tokens = AccessToken.query.filter_by(user=request.user.id)
applications = [(a.get_requesttoken, a) for a in access_tokens]
return render_to_response(
request,
'mediagoblin/edit/deauthorize_applications.html',
{'applications': applications}
)
@require_active_login
def delete_account(request):