Add permissions to API keys

This commit is contained in:
2012-06-08 20:32:06 +01:00
parent 799cd0231b
commit 5180712cef
6 changed files with 146 additions and 14 deletions

View File

@@ -2,14 +2,28 @@ import uuid
from django.db import models
class AuthAPIKeyPermission(models.Model):
""" Auth API Key permissions """
key = models.CharField("Permission Key", max_length=32)
name = models.CharField("Permission Name", max_length=200)
def __unicode__(self):
return self.name
class Meta:
verbose_name = 'API Key Permission'
verbose_name_plural = 'API Key Permissions'
class AuthAPIKey(models.Model):
""" Auth API Key storage model """
name = models.CharField("Service Name", max_length=200)
url = models.CharField("Service URL", max_length=200, blank=True, help_text="URL that the service is available at")
url = models.CharField("Service URL", max_length=200, blank=True, help_text="URL that the service is available at.")
active = models.BooleanField(default=True)
key = models.CharField("API Key", max_length=200, blank=True, help_text="API key for the service to use")
callback = models.CharField("Callback URL", max_length=200, blank=True, help_text="URL for the callback service to connect to")
key = models.CharField("API Key", max_length=200, blank=True, help_text="API key for the service to use.")
callback = models.CharField("Callback URL", max_length=200, blank=True, help_text="URL for the callback service to connect to.")
permissions = models.ManyToManyField(AuthAPIKeyPermission, related_name='keys', help_text="API calls this API key is allowed to access.")
def save(self, *args, **kwargs):
if not self.key or self.key == '':