diff options
author | Andrew Godwin | 2022-11-18 00:09:04 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-11-18 00:09:04 -0700 |
commit | 1b44a253316a84f40070264ea8134c86d1223441 (patch) | |
tree | 2caa56d54a8e81f14649b826f9f3ef5a7c1326ae /users/models/invite.py | |
parent | b3072c81ba73a16381366960841b6c294cc1fa6e (diff) | |
download | takahe-1b44a253316a84f40070264ea8134c86d1223441.tar.gz takahe-1b44a253316a84f40070264ea8134c86d1223441.tar.bz2 takahe-1b44a253316a84f40070264ea8134c86d1223441.zip |
Signup and invite tweaks
Diffstat (limited to 'users/models/invite.py')
-rw-r--r-- | users/models/invite.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/users/models/invite.py b/users/models/invite.py new file mode 100644 index 0000000..5d69b18 --- /dev/null +++ b/users/models/invite.py @@ -0,0 +1,30 @@ +import random + +from django.db import models + + +class Invite(models.Model): + """ + An invite token, good for one signup. + """ + + # Should always be lowercase + token = models.CharField(max_length=500, unique=True) + + # Is it limited to a specific email? + email = models.EmailField(null=True, blank=True) + + # Admin note about this code + note = models.TextField(null=True, blank=True) + + created = models.DateTimeField(auto_now_add=True) + updated = models.DateTimeField(auto_now=True) + + @classmethod + def create_random(cls, email=None): + return cls.objects.create( + token="".join( + random.choice("abcdefghkmnpqrstuvwxyz23456789") for i in range(20) + ), + email=email, + ) |