Relate roles to organizations

This commit is contained in:
Roberto Rosario
2016-05-25 01:06:57 -04:00
parent a3a03ec095
commit 6e6a6073d2
3 changed files with 43 additions and 4 deletions

View File

@@ -13,7 +13,7 @@ class RoleAdmin(admin.ModelAdmin):
def permissions_list(self, instance):
return ','.join(instance.permissions.values_list('name', flat=True))
filter_horizontal = ('groups', 'permissions')
filter_horizontal = ('organization_groups', 'permissions')
list_display = ('label', 'permissions_list', 'groups_list')

View File

@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import organizations.shortcuts
class Migration(migrations.Migration):
dependencies = [
('organizations', '0002_add_data_default_organization'),
('user_management', '0003_auto_20160525_0155'),
('permissions', '0003_remove_role_name'),
]
operations = [
migrations.RemoveField(
model_name='role',
name='groups',
),
migrations.AddField(
model_name='role',
name='organization',
field=models.ForeignKey(default=organizations.shortcuts.get_current_organization, to='organizations.Organization'),
),
migrations.AddField(
model_name='role',
name='organization_groups',
field=models.ManyToManyField(related_name='roles', verbose_name='Groups', to='user_management.MayanGroup'),
),
]

View File

@@ -2,12 +2,16 @@ from __future__ import unicode_literals
import logging
from django.contrib.auth.models import Group
from django.core.urlresolvers import reverse
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from organizations.models import Organization
from organizations.managers import CurrentOrganizationManager
from organizations.shortcuts import get_current_organization
from user_management.models import MayanGroup
from .managers import RoleManager, StoredPermissionManager
logger = logging.getLogger(__name__)
@@ -69,11 +73,15 @@ class Role(models.Model):
permissions = models.ManyToManyField(
StoredPermission, related_name='roles', verbose_name=_('Permissions')
)
groups = models.ManyToManyField(
Group, related_name='roles', verbose_name=_('Groups')
organization_groups = models.ManyToManyField(
MayanGroup, related_name='roles', verbose_name=_('Groups')
)
organization = models.ForeignKey(
Organization, default=get_current_organization
)
objects = RoleManager()
on_organization = CurrentOrganizationManager()
def __str__(self):
return self.label