Ich schreibe eine Django-App, die verfolgt, welche E-Mail-Adressen Inhalte auf ein Benutzerkonto veröffentlichen dürfen. Der Benutzer kann Adressen nach Belieben auflisten und auf die schwarze Liste setzen.E-Mail-Whitelist/Blacklist in Python/Django
Beliebige Adressen, die nicht angegeben sind, können entweder per Nachricht behandelt werden oder nur auf die weiße oder schwarze Liste gesetzt werden (wieder benutzerdefiniert).
Hier sind die Django-Modelle, die ich geschrieben habe ... denkst du ist ein guter Weg, es zu tun? Oder sollte ich dem Profilmodell eines Benutzers eine Whitelist und ein Blacklist-Feld hinzufügen?
class knownEmail(models.Model):
# The user who set this address' permission, NOT
# the user who the address belongs to...
relatedUser = models.ManyToManyField(User)
email = models.EmailField()
class whiteList(knownEmail):
pass
class blackList(knownEmail):
pass
Dann könnte ich so etwas wie:
def checkPermission(user, emailAddress):
"Check if 'emailAddress' is allowed to post content to 'user's profile"
if whiteList.objects.filter(relatedUser=user, email=emailAddress):
return True
elif blackList.objects.filter(relatedUser=user, email=emailAddress):
return False
else:
return None
Gibt es einen besseren Weg?
danke, ich denke, Ihre zweite Klasse Methode sollte is_on_blacklist obwohl sein;) – Jiaaro