mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Merge pull request #3210 from modoboa/fix/missing_perm_view_domainalias
Added missing permission view_domainalias to DomainAdmins group
This commit is contained in:
@@ -470,8 +470,6 @@ class WritableAccountSerializer(AccountSerializer):
|
||||
else:
|
||||
password = validated_data.pop("password")
|
||||
user.set_password(password)
|
||||
if "language" not in validated_data:
|
||||
user.language = settings.LANGUAGE_CODE
|
||||
user.save(creator=creator)
|
||||
if mailbox_data:
|
||||
self._create_mailbox(creator, user, mailbox_data)
|
||||
|
||||
@@ -6,6 +6,7 @@ from unittest import mock
|
||||
|
||||
import dns.resolver
|
||||
|
||||
from django.core.cache import cache
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
@@ -25,7 +26,7 @@ class DomainAPITestCase(ModoAPITestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls): # NOQA:N802
|
||||
"""Create test data."""
|
||||
super(DomainAPITestCase, cls).setUpTestData()
|
||||
super().setUpTestData()
|
||||
factories.populate_database()
|
||||
cls.da_token = Token.objects.create(
|
||||
user=core_models.User.objects.get(username="admin@test.com")
|
||||
@@ -258,6 +259,10 @@ class AccountAPITestCase(ModoAPITestCase):
|
||||
{"enable_admin_limits": False, "enable_domain_limits": False}, app="limits"
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
# Make sure API calls do not get throttled
|
||||
cache.clear()
|
||||
|
||||
def test_get_accounts(self):
|
||||
"""Retrieve a list of accounts."""
|
||||
url = reverse("v1:account-list")
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 4.2.11 on 2024-03-20 10:37
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def set_missing_permission(apps, schema_editor):
|
||||
Permission = apps.get_model("auth", "Permission")
|
||||
Group = apps.get_model("auth", "Group")
|
||||
group = Group.objects.filter(name="DomainAdmins").first()
|
||||
if not group:
|
||||
# Fresh install, nothing to do
|
||||
return
|
||||
perm = Permission.objects.get(codename="view_domainalias")
|
||||
group.permissions.add(perm)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("admin", "0022_alter_alarm_domain"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(set_missing_permission, migrations.RunPython.noop),
|
||||
]
|
||||
@@ -78,6 +78,7 @@ PERMISSIONS = {
|
||||
["admin", "senderaddress", "add_senderaddress"],
|
||||
["admin", "senderaddress", "change_senderaddress"],
|
||||
["admin", "senderaddress", "delete_senderaddress"],
|
||||
["admin", "domainalias", "view_domainalias"],
|
||||
],
|
||||
"Resellers": [
|
||||
["core", "user", "add_user"],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"""A management command to load Modoboa initial data:
|
||||
"""
|
||||
A management command to load Modoboa initial data.
|
||||
|
||||
* Create a default super admin if none exists
|
||||
* Create groups and permissions
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Generated by Django 4.2.11 on 2024-03-20 11:11
|
||||
|
||||
from django.db import migrations, models
|
||||
import modoboa.core.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("core", "0026_alter_localconfig__parameters_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="language",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("br", "breton"),
|
||||
("cs", "čeština"),
|
||||
("de", "deutsch"),
|
||||
("en", "english"),
|
||||
("el", "ελληνικά"),
|
||||
("es", "español"),
|
||||
("fi", "Suomalainen"),
|
||||
("fr", "français"),
|
||||
("it", "italiano"),
|
||||
("ja", "日本の"),
|
||||
("nl", "nederlands"),
|
||||
("pt", "português"),
|
||||
("pt-br", "português (BR)"),
|
||||
("pl", "polski"),
|
||||
("ro", "Română"),
|
||||
("ru", "русский"),
|
||||
("sv", "svenska"),
|
||||
("tr", "türk"),
|
||||
("zh-hant", "中文(台灣)"),
|
||||
],
|
||||
default=modoboa.core.models.get_default_language,
|
||||
help_text="Prefered language to display pages.",
|
||||
max_length=10,
|
||||
verbose_name="language",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -36,6 +36,10 @@ except ImportError:
|
||||
ldap_available = False
|
||||
|
||||
|
||||
def get_default_language() -> str:
|
||||
return settings.LANGUAGE_CODE
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
"""Custom User model.
|
||||
|
||||
@@ -61,7 +65,7 @@ class User(AbstractUser):
|
||||
language = models.CharField(
|
||||
gettext_lazy("language"),
|
||||
max_length=10,
|
||||
default="en",
|
||||
default=get_default_language,
|
||||
choices=constants.LANGUAGES,
|
||||
help_text=gettext_lazy("Prefered language to display pages."),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user