Skip to content

Commit c366335

Browse files
committed
feat: remove changing state after revocation
1 parent 0a7f487 commit c366335

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

credentials/apps/badges/issuers.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@
3333
from credentials.apps.credentials.issuers import AbstractCredentialIssuer
3434

3535

36+
REVOCATION_STATES = {
37+
CredlyBadge: CredlyBadge.STATES.revoked,
38+
AccredibleBadge: AccredibleBadge.STATES.expired,
39+
}
40+
41+
3642
class BadgeTemplateIssuer(AbstractCredentialIssuer):
3743
"""
3844
Issues BadgeTemplate credentials to users.
@@ -76,14 +82,17 @@ def issue_credential(
7682
UserCredential
7783
"""
7884

79-
user_credential, __ = self.issued_user_credential_type.objects.update_or_create(
85+
user_credential, __ = self.issued_user_credential_type.objects.get_or_create(
8086
username=username,
8187
credential_content_type=ContentType.objects.get_for_model(credential),
8288
credential_id=credential.id,
8389
defaults={
8490
"status": status,
8591
},
8692
)
93+
if not user_credential.state == REVOCATION_STATES.get(self.issued_user_credential_type):
94+
user_credential.status = status
95+
user_credential.save()
8796

8897
self.set_credential_attributes(user_credential, attributes)
8998
self.set_credential_date_override(user_credential, date_override)

credentials/apps/badges/models.py

+1
Original file line numberDiff line numberDiff line change
@@ -624,6 +624,7 @@ class CredlyBadge(UserCredential):
624624
STATES.pending,
625625
STATES.accepted,
626626
STATES.rejected,
627+
STATES.revoked,
627628
}
628629

629630
state = StatusField(

0 commit comments

Comments
 (0)