Django-suit, add in Roles for specific classes site, slice, deployment, planetstack...
[plstackapi.git] / planetstack / core / models / role.py
1 import os
2 import datetime
3 from django.db import models
4 from core.models import PlCoreBase
5 from django.contrib.contenttypes.models import ContentType
6 from django.contrib.contenttypes import generic
7
8 class Role(PlCoreBase):
9
10     role_type = models.CharField(max_length=80, verbose_name="Name")
11     description = models.CharField(max_length=120, verbose_name="Description")
12     content_type = models.ForeignKey(ContentType, verbose_name="Role Scope")
13
14     def __unicode__(self):  return u'%s:%s' % (self.content_type,self.role_type)
15
16
17     def save(self, *args, **kwds):
18         if not hasattr(self, 'os_manager'):
19             from openstack.manager import OpenStackManager
20             setattr(self, 'os_manager', OpenStackManager())
21         self.os_manager.save_role(self)
22         super(Role, self).save(*args, **kwds)
23     
24     def delete(self, *args, **kwds):
25         if not hasattr(self, 'os_manager'):
26             from openstack.manager import OpenStackManager
27             setattr(self, 'os_manager', OpenStackManager())
28         self.os_manager.delete_role(self)   
29         super(Role, self).delete(*args, **kwds)
30