Relate roles to organizations
This commit is contained in:
@@ -13,7 +13,7 @@ class RoleAdmin(admin.ModelAdmin):
|
|||||||
def permissions_list(self, instance):
|
def permissions_list(self, instance):
|
||||||
return ','.join(instance.permissions.values_list('name', flat=True))
|
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')
|
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
|
import logging
|
||||||
|
|
||||||
from django.contrib.auth.models import Group
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.encoding import python_2_unicode_compatible
|
from django.utils.encoding import python_2_unicode_compatible
|
||||||
from django.utils.translation import ugettext_lazy as _
|
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
|
from .managers import RoleManager, StoredPermissionManager
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -69,11 +73,15 @@ class Role(models.Model):
|
|||||||
permissions = models.ManyToManyField(
|
permissions = models.ManyToManyField(
|
||||||
StoredPermission, related_name='roles', verbose_name=_('Permissions')
|
StoredPermission, related_name='roles', verbose_name=_('Permissions')
|
||||||
)
|
)
|
||||||
groups = models.ManyToManyField(
|
organization_groups = models.ManyToManyField(
|
||||||
Group, related_name='roles', verbose_name=_('Groups')
|
MayanGroup, related_name='roles', verbose_name=_('Groups')
|
||||||
|
)
|
||||||
|
organization = models.ForeignKey(
|
||||||
|
Organization, default=get_current_organization
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = RoleManager()
|
objects = RoleManager()
|
||||||
|
on_organization = CurrentOrganizationManager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.label
|
return self.label
|
||||||
|
|||||||
Reference in New Issue
Block a user