Add full application management API, UI and test cases
This commit is contained in:
parent
a3eff7a2e8
commit
f7c27f250b
16 changed files with 904 additions and 15 deletions
|
@ -4,7 +4,8 @@ from datetime import datetime, timedelta
|
|||
from oauth2lib.provider import AuthorizationProvider
|
||||
from oauth2lib import utils
|
||||
|
||||
from data.database import OAuthApplication, OAuthAuthorizationCode, OAuthAccessToken, User
|
||||
from data.database import (OAuthApplication, OAuthAuthorizationCode, OAuthAccessToken, User,
|
||||
random_string_generator)
|
||||
from auth import scopes
|
||||
|
||||
|
||||
|
@ -184,3 +185,31 @@ def get_application_for_client_id(client_id):
|
|||
return OAuthApplication.get(client_id=client_id)
|
||||
except OAuthApplication.DoesNotExist:
|
||||
return None
|
||||
|
||||
def reset_client_secret(application):
|
||||
application.client_secret = random_string_generator(length=40)()
|
||||
application.save()
|
||||
return application
|
||||
|
||||
def lookup_application(org, client_id):
|
||||
try:
|
||||
return OAuthApplication.get(organization = org, client_id=client_id)
|
||||
except OAuthApplication.DoesNotExist:
|
||||
return None
|
||||
|
||||
|
||||
def delete_application(org, client_id):
|
||||
application = lookup_application(org, client_id)
|
||||
if not application:
|
||||
return
|
||||
|
||||
application.delete_instance(recursive=True, delete_nullable=True)
|
||||
return application
|
||||
|
||||
def list_applications_for_org(org):
|
||||
query = (OAuthApplication
|
||||
.select()
|
||||
.join(User)
|
||||
.where(OAuthApplication.organization == org))
|
||||
|
||||
return query
|
||||
|
|
Reference in a new issue