mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-10 04:50:16 +02:00
* Add public field to AuthGroup * Add permission for users to join non-public groups By default this permission will be applied to the "Member" group to maintain the current behaviour. * Allow users to join public groups Users without the 'groupmanagement.request_groups' permission will be able to join groups marked as public but will not be able to see or join any other groups. * Prevent None state change from purging groups Currently when a user drops from Blue or Member state all groups and permissions are discarded. This softens that approach by not removing public groups and creates a distinction between the two activities. An argument could maybe be made for not removing permissions on a state change, but that is beyond the scope of this change. * Correct syntax for removing filtered groups * Add unit tests for disable user and member * Update services signals tests * Correct mocking call * Remove permissions checking from menu item
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Generated by Django 1.10.5 on 2017-02-04 07:17
|
|
from __future__ import unicode_literals
|
|
|
|
from django.db import migrations
|
|
from django.conf import settings
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.contrib.auth.management import create_permissions
|
|
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def add_default_member_permission(apps, schema_editor):
|
|
for app_config in apps.get_app_configs():
|
|
app_config.models_module = True
|
|
create_permissions(app_config, apps=apps, verbosity=0)
|
|
app_config.models_module = None
|
|
|
|
Group = apps.get_model("auth", "Group")
|
|
Permission = apps.get_model("auth", "Permission")
|
|
|
|
try:
|
|
perm = Permission.objects.get(codename='request_groups', name='Can request non-public groups')
|
|
group = Group.objects.get(name=getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member'))
|
|
group.permissions.add(perm)
|
|
except ObjectDoesNotExist:
|
|
logger.warning('Failed to add default request_groups permission to Member group')
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('groupmanagement', '0005_authgroup_public'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.AlterModelOptions(
|
|
name='authgroup',
|
|
options={'permissions': (('request_groups', 'Can request non-public groups'),)},
|
|
),
|
|
migrations.RunPython(add_default_member_permission),
|
|
]
|