42 lines
1.1 KiB
Python
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 ""
|