def handle(self, *args, **options): force_exec = options.get('force_exec') target_address = options.get('target_address') client_id = None client_secret = None if check_ogc_backend(geoserver.BACKEND_PACKAGE): from geonode.geoserver.helpers import ogc_server_settings redirect_uris = f'{ogc_server_settings.LOCATION}\n{ogc_server_settings.public_url}\n{target_address}/geoserver/' # noqa if Application.objects.filter(name='GeoServer').exists(): Application.objects.filter(name='GeoServer').update(redirect_uris=redirect_uris) if force_exec: Application.objects.filter(name='GeoServer').update( client_id=generate_client_id(), client_secret=generate_client_secret() ) app = Application.objects.filter(name='GeoServer')[0] client_id = app.client_id client_secret = app.client_secret else: client_id = generate_client_id() client_secret = generate_client_secret() Application.objects.create( skip_authorization=True, redirect_uris=redirect_uris, name='GeoServer', authorization_grant_type='authorization-code', client_type='confidential', client_id=client_id, client_secret=client_secret, user=get_user_model().objects.filter(is_superuser=True)[0] ) return f'{client_id},{client_secret}'
def handle(self, *args, **options): from django.conf import settings client_id = None client_secret = None if check_ogc_backend(geoserver.BACKEND_PACKAGE): from geonode.geoserver.helpers import ogc_server_settings redirect_uris = '%s\n%s' % (ogc_server_settings.LOCATION, ogc_server_settings.public_url) if Application.objects.filter(name='GeoServer').exists(): Application.objects.filter(name='GeoServer').update(redirect_uris=redirect_uris) app = Application.objects.filter(name='GeoServer')[0] client_id = app.client_id client_secret = app.client_secret else: client_id = generate_client_id() client_secret = generate_client_secret() Application.objects.create( skip_authorization=True, redirect_uris=redirect_uris, name='GeoServer', authorization_grant_type='authorization-code', client_type='confidential', client_id=client_id, client_secret=client_secret, user=Profile.objects.filter(is_superuser=True)[0] ) return '%s,%s' % (client_id, client_secret)
def update(request, user_app_id): """Update record""" data = request.DATA user = helpers.get_user(request) data = helpers.set_null_values_if_not_exist(data, get_fields()) try: item = get_application_model().objects.get(pk=user_app_id) except get_application_model().DoesNotExist: return {'code': 'user_app/not_found', 'values': [user_app_id]}, 404, False data['client_type'] = AbstractApplication.CLIENT_CONFIDENTIAL data['authorization_grant_type'] = AbstractApplication.GRANT_PASSWORD data['skip_authorization'] = True data['client_id'] = generate_client_id() data['client_secret'] = generate_client_secret() helpers.json_to_objects(item, data) item.user = user item.save() return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def handle(self, *args, **options): from django.conf import settings client_id = None client_secret = None if 'geonode.geoserver' in settings.INSTALLED_APPS: from geonode.geoserver.helpers import ogc_server_settings if Application.objects.filter(name='GeoServer').exists(): Application.objects.filter(name='GeoServer').update( redirect_uris=ogc_server_settings.public_url) app = Application.objects.filter(name='GeoServer')[0] client_id = app.client_id client_secret = app.client_secret else: client_id = generate_client_id() client_secret = generate_client_secret() Application.objects.create( skip_authorization=True, redirect_uris=ogc_server_settings.public_url, name='GeoServer', authorization_grant_type='authorization-code', client_type='confidential', client_id=client_id, client_secret=client_secret, user=Profile.objects.filter(is_superuser=True)[0]) return '%s,%s' % (client_id, client_secret)
def update(self, instance, validated_data): instance.redirect_uris = validated_data.get('redirect_uris', instance.redirect_uris) instance.name = validated_data.get('name', instance.name) instance.web_hook = validated_data.get('web_hook', instance.web_hook) if validated_data.get('reset_credentials', False) is True: instance.client_id = generate_client_id() instance.client_secret = generate_client_secret() instance.save() return instance
def handle(self, *args, **options): new_application = Application( user=User.objects.filter(is_superuser=True)[0], client_type="confidential", authorization_grant_type="password", name=options["name"] or "socialauth_application", client_id=options["client_id"] or generate_client_id(), client_secret=options["client_secret"] or generate_client_secret(), ) new_application.save()
def add_application(username, application_name): user = User.objects.get(username=username) if not user: return application = MyApplication(name=application_name, client_id=generate_client_id(), client_secret=generate_client_secret(), client_type="confidential", authorization_grant_type="password", user=user) application.save()
def get_form(self, form_class=None): form = super(ApiRequestStatusView, self).get_form(form_class) # Copy the data, since it's an immutable QueryDict. copied_data = form.data.copy() # Now set the fields that were removed earlier. We give them # confidential client credentials, and generate their client # ID and secret. copied_data.update({ 'authorization_grant_type': Application.GRANT_CLIENT_CREDENTIALS, 'client_type': Application.CLIENT_CONFIDENTIAL, 'client_secret': generate_client_secret(), 'client_id': generate_client_id(), }) form.data = copied_data return form
def Application_Update_Secret(request, pk): """ Replace client_id and client_secret :param request: :param pk: :return: """ if request.method == 'POST': a = BBApplication.objects.get(pk=pk) form = Application_Secret(request.POST) if form.is_valid(): if form.cleaned_data['confirm'] == '1': a.client_id = generate_client_id() a.client_secret = generate_client_secret() a.save() messages.success(request, "Client Id and Secret updated") if settings.DEBUG: print("Confirm:", form.cleaned_data['confirm']) print("Id:", a.client_id) print("Secret:", a.client_secret) return HttpResponseRedirect( reverse_lazy('appmgmt:manage_applications')) else: if settings.DEBUG: print("form has a problem") else: a = BBApplication.objects.get(pk=pk) if settings.DEBUG: print("BBApplication:", a) form = Application_Secret(initial={'confirm': '0'}) return render_to_response( 'appmgmt/application_secret_form.html', RequestContext(request, { 'form': form, 'application': a, }))
def create_sentry_application(sentry_instance): if not sentry_instance: return name = sentry_instance["InstanceName"] client_id = generators.generate_client_id() client_secret = generators.generate_client_secret() authorization_grant_type = Application.GRANT_AUTHORIZATION_CODE client_type = Application.CLIENT_PUBLIC redirect_url = "http://%s/oauth/consumer/exchange/" % (sentry_instance["sentry_ipaddress"],) if not MyApplication.objects.filter(name=name): MyApplication.objects.create( name=name, client_id=client_id, client_secret=client_secret, authorization_grant_type=authorization_grant_type, client_type=client_type, redirect_uris=redirect_url, user_id=1, ) return client_id, client_secret
def handle(self, *args, **options): name = ''.join( random.choices(string.ascii_uppercase + string.digits, k=8)) client_id = generate_client_id() client_secret = generate_client_secret() client_type = 'public' authorization_grant_type = 'password' redirect_uris = '' skip_authorization = False # Save application application = get_application_model().objects.create( name=name, client_id=client_id, client_secret=client_secret, client_type=client_type, authorization_grant_type=authorization_grant_type, redirect_uris=redirect_uris, skip_authorization=skip_authorization) # Print application data print(json.dumps(model_to_dict(application), indent=4))
def Application_Update_Secret(request, pk): """ Replace client_id and client_secret :param request: :param pk: :return: """ if request.method == "POST": a = BBApplication.objects.get(pk=pk) form = Application_Secret(request.POST) if form.is_valid(): if form.cleaned_data["confirm"] == "1": a.client_id = generate_client_id() a.client_secret = generate_client_secret() a.save() messages.success(request, "Client Id and Secret updated") if settings.DEBUG: print("Confirm:", form.cleaned_data["confirm"]) print("Id:", a.client_id) print("Secret:", a.client_secret) return HttpResponseRedirect(reverse_lazy("appmgmt:application_view")) else: if settings.DEBUG: print("form has a problem") else: a = BBApplication.objects.get(pk=pk) if settings.DEBUG: print("BBApplication:", a) form = Application_Secret(initial={"confirm": "0"}) return render_to_response( "appmgmt/application_secret_form.html", RequestContext(request, {"form": form, "application": a}) )
def save(self, commit=True): """Save the form. This method will generate the ``client_id`` and ``client_secret`` fields. Args: commit (bool, optional): Whether or not the Application should be saved to the database. Returns: reviewboard.oauth.models.Application: The created Application. """ instance = super(ApplicationCreationForm, self).save(commit=False) instance.client_id = generate_client_id() instance.client_secret = generate_client_secret() if commit: instance.save() return instance
def Application_Update_Secret(request, pk): """ Replace client_id and client_secret :param request: :param pk: :return: """ if request.method == 'POST': a=BBApplication.objects.get(pk=pk) form = Application_Secret(request.POST) if form.is_valid(): if form.cleaned_data['confirm'] == '1': a.client_id = generate_client_id() a.client_secret = generate_client_secret() a.save() messages.success(request,"Client Id and Secret updated") if settings.DEBUG: print("Confirm:", form.cleaned_data['confirm']) print("Id:", a.client_id) print("Secret:", a.client_secret) return HttpResponseRedirect(reverse_lazy('appmgmt:manage_applications')) else: if settings.DEBUG: print("form has a problem") else: a=BBApplication.objects.get(pk=pk) if settings.DEBUG: print("BBApplication:", a) form = Application_Secret(initial={'confirm': '0'}) return render_to_response('appmgmt/application_secret_form.html', RequestContext(request,{'form': form, 'application': a,}))
def create(request): data = request.DATA user = helpers.get_user(request) data = helpers.set_null_values_if_not_exist(data, get_fields()) data['client_type'] = AbstractApplication.CLIENT_CONFIDENTIAL data['authorization_grant_type'] = AbstractApplication.GRANT_PASSWORD data['skip_authorization'] = True data['client_id'] = generate_client_id() data['client_secret'] = generate_client_secret() item, created = get_application_model().objects.get_or_create(client_id=data['client_id'], user=user, redirect_uris=data['redirect_uris'], client_type=data['client_type'], authorization_grant_type=data[ 'authorization_grant_type'], client_secret=data['client_secret'], name=data['name'], skip_authorization=data['skip_authorization']) return {'code': 'ok', 'data': helpers.objects_to_json(request, [item])}, 200, item
def test_generate_client_id(self): g = oauth2_settings.CLIENT_ID_GENERATOR_CLASS() self.assertEqual(len(g.hash()), 40) oauth2_settings.CLIENT_ID_GENERATOR_CLASS = MockHashGenerator self.assertEqual(generate_client_id(), 42)
def create(self, validated_data): validated_data["client_id"] = generate_client_id() validated_data["client_secret"] = generate_client_secret() return SBApplication.objects.create(**validated_data)