IdHub/oidc4vp/forms.py

42 lines
1.1 KiB
Python

from django import forms
class Organization(forms.Form):
wallet = forms.ChoiceField(
"Wallet",
choices=[(x.id, x.name) for x in Organization.objects.all()]
)
def clean_wallet(self):
data = self.cleaned_data["wallet"]
organization = Organization.objects.filter(
id=data
)
if not organization.exists():
raise ValidationError("organization is not valid!")
self.organization = organization.first()
return data
def authorize(self):
data = {
"response_type": "vp_token",
"response_mode": "direct_post",
"client_id": self.organization.client_id,
"response_uri": settings.RESPONSE_URI,
"presentation_definition": self.pv_definition(),
"nonce": ""
}
query_dict = QueryDict('', mutable=True)
query_dict.update(data)
url = '{response_uri}/authorize?{params}'.format(
response_uri=self.organization.response_uri,
params=query_dict.urlencode()
)
def pv_definition(self):
return ""