core(minor): add new, optional description field to nonce
This commit is contained in:
		
							
								
								
									
										18
									
								
								passbook/core/migrations/0002_nonce_description.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								passbook/core/migrations/0002_nonce_description.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | # Generated by Django 2.2.6 on 2019-10-10 11:48 | ||||||
|  |  | ||||||
|  | from django.db import migrations, models | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  |  | ||||||
|  |     dependencies = [ | ||||||
|  |         ('passbook_core', '0001_initial'), | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     operations = [ | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='nonce', | ||||||
|  |             name='description', | ||||||
|  |             field=models.TextField(blank=True, default=''), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
| @ -57,6 +57,7 @@ class User(AbstractUser): | |||||||
|         self.password_change_date = now() |         self.password_change_date = now() | ||||||
|         return super().set_password(password) |         return super().set_password(password) | ||||||
|  |  | ||||||
|  |  | ||||||
| class Provider(models.Model): | class Provider(models.Model): | ||||||
|     """Application-independent Provider instance. For example SAML2 Remote, OAuth2 Application""" |     """Application-independent Provider instance. For example SAML2 Remote, OAuth2 Application""" | ||||||
|  |  | ||||||
| @ -70,6 +71,7 @@ class Provider(models.Model): | |||||||
|             return getattr(self, 'name') |             return getattr(self, 'name') | ||||||
|         return super().__str__() |         return super().__str__() | ||||||
|  |  | ||||||
|  |  | ||||||
| class PolicyModel(UUIDModel, CreatedUpdatedModel): | class PolicyModel(UUIDModel, CreatedUpdatedModel): | ||||||
|     """Base model which can have policies applied to it""" |     """Base model which can have policies applied to it""" | ||||||
|  |  | ||||||
| @ -255,21 +257,29 @@ class Invitation(UUIDModel): | |||||||
|         verbose_name = _('Invitation') |         verbose_name = _('Invitation') | ||||||
|         verbose_name_plural = _('Invitations') |         verbose_name_plural = _('Invitations') | ||||||
|  |  | ||||||
|  |  | ||||||
| class Nonce(UUIDModel): | class Nonce(UUIDModel): | ||||||
|     """One-time link for password resets/sign-up-confirmations""" |     """One-time link for password resets/sign-up-confirmations""" | ||||||
|  |  | ||||||
|     expires = models.DateTimeField(default=default_nonce_duration) |     expires = models.DateTimeField(default=default_nonce_duration) | ||||||
|     user = models.ForeignKey('User', on_delete=models.CASCADE) |     user = models.ForeignKey('User', on_delete=models.CASCADE) | ||||||
|     expiring = models.BooleanField(default=True) |     expiring = models.BooleanField(default=True) | ||||||
|  |     description = models.TextField(default='', blank=True) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def is_expired(self) -> bool: | ||||||
|  |         """Check if nonce is expired yet.""" | ||||||
|  |         return now() > self.expires | ||||||
|  |  | ||||||
|     def __str__(self): |     def __str__(self): | ||||||
|         return f"Nonce f{self.uuid.hex} (expires={self.expires})" |         return f"Nonce f{self.uuid.hex} {self.description} (expires={self.expires})" | ||||||
|  |  | ||||||
|     class Meta: |     class Meta: | ||||||
|  |  | ||||||
|         verbose_name = _('Nonce') |         verbose_name = _('Nonce') | ||||||
|         verbose_name_plural = _('Nonces') |         verbose_name_plural = _('Nonces') | ||||||
|  |  | ||||||
|  |  | ||||||
| class PropertyMapping(UUIDModel): | class PropertyMapping(UUIDModel): | ||||||
|     """User-defined key -> x mapping which can be used by providers to expose extra data.""" |     """User-defined key -> x mapping which can be used by providers to expose extra data.""" | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Langhammer, Jens
					Langhammer, Jens