oauth2: add command oauth2-create-client (fixes #22949)
This commit is contained in:
parent
cbf2f6132b
commit
76532ef64a
|
@ -0,0 +1,24 @@
|
|||
from django.core.management.base import BaseCommand
|
||||
|
||||
from fargo.oauth2.models import OAuth2Client
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Create an OAuth2 client'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('client_name')
|
||||
parser.add_argument('redirect_uris')
|
||||
parser.add_argument('--client-id', required=False, default=None)
|
||||
parser.add_argument('--client-secret', required=False, default=None)
|
||||
|
||||
def handle(self, client_name, redirect_uris, client_id, client_secret, **options):
|
||||
kwargs = {
|
||||
'client_name': client_name,
|
||||
'redirect_uris': redirect_uris,
|
||||
}
|
||||
if client_id:
|
||||
kwargs['client_id'] = client_id
|
||||
if client_secret:
|
||||
kwargs['client_secret'] = client_secret
|
||||
client = OAuth2Client.objects.create(**kwargs)
|
|
@ -6,6 +6,7 @@ import urlparse
|
|||
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.http import urlencode
|
||||
from django.core.management import call_command
|
||||
|
||||
from fargo.oauth2.models import OAuth2Client, OAuth2Authorize, OAuth2TempFile
|
||||
from fargo.fargo.models import UserDocument
|
||||
|
@ -205,3 +206,25 @@ def test_idp_authentication(mocked_post, settings, app, oauth2_client, john_doe,
|
|||
url = reverse('oauth2-get-document')
|
||||
app.authorization = ('Bearer', str(auth.access_token))
|
||||
resp = app.get(url, status=200)
|
||||
|
||||
|
||||
def test_command_create_client(db):
|
||||
call_command('oauth2-create-client', 'test', 'https://example.com/')
|
||||
client = OAuth2Client.objects.get()
|
||||
assert client.client_name == 'test'
|
||||
assert client.redirect_uris == 'https://example.com/'
|
||||
assert client.client_id
|
||||
assert client.client_secret
|
||||
|
||||
OAuth2Client.objects.all().delete()
|
||||
|
||||
call_command('oauth2-create-client',
|
||||
'test',
|
||||
'https://example.com/',
|
||||
'--client-id=wtf',
|
||||
'--client-secret=whocares')
|
||||
client = OAuth2Client.objects.get()
|
||||
assert client.client_name == 'test'
|
||||
assert client.redirect_uris == 'https://example.com/'
|
||||
assert client.client_id == 'wtf'
|
||||
assert client.client_secret == 'whocares'
|
||||
|
|
Loading…
Reference in New Issue