Relate roles to organizations
This commit is contained in:
@@ -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')
|
||||
|
||||
|
||||
|
||||
31
mayan/apps/permissions/migrations/0004_auto_20160525_0159.py
Normal file
31
mayan/apps/permissions/migrations/0004_auto_20160525_0159.py
Normal 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'),
|
||||
),
|
||||
]
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user