mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Replace fixtures by migrations.
This commit is contained in:
+1
-1
@@ -3,7 +3,7 @@ python:
|
||||
- "2.7"
|
||||
|
||||
env:
|
||||
- DJANGO=1.6
|
||||
- DJANGO=1.7
|
||||
|
||||
install:
|
||||
- pip install -q Django==$DJANGO --use-mirrors
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
[{"pk": 1, "model": "core.user", "fields": {"username": "admin", "first_name": "", "last_name": "", "is_active": true, "is_superuser": true, "is_staff": false, "last_login": "2012-01-26T15:19:26+01:00", "groups": [], "user_permissions": [], "password": "{CRYPT}dTTsGDkA5ZHKg", "email": "", "date_joined": "2012-01-26T15:19:26+01:00"}},{"pk": 1, "model": "core.objectaccess", "fields": {"is_owner": true, "user": 1, "content_type": ["core", "user"], "object_id": 1}}]
|
||||
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
def load_initial_data(apps, schema_editor):
|
||||
"""Load initial data."""
|
||||
User = apps.get_model("core", "User")
|
||||
user = User(username="admin", is_superuser=True)
|
||||
user.set_password("password")
|
||||
user.save()
|
||||
|
||||
ObjectAccess = apps.get_model("core", "ObjectAccess")
|
||||
ObjectAccess.objects.create(user=user, content_object=user, is_owner=True)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(load_initial_data)
|
||||
]
|
||||
+1
-1
@@ -7,7 +7,7 @@ from django.db import models, migrations
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('core', '0001_initial'),
|
||||
('core', '0002_load_initial_data'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
@@ -1 +0,0 @@
|
||||
[{"pk": 1, "model": "auth.group", "fields": {"name": "DomainAdmins", "permissions": [["add_user", "core", "user"], ["change_user", "core", "user"], ["delete_user", "core", "user"], ["view_domains", "admin", "domain"], ["add_mailbox", "admin", "mailbox"], ["change_mailbox", "admin", "mailbox"], ["delete_mailbox", "admin", "mailbox"], ["add_alias", "admin", "alias"], ["change_alias", "admin", "alias"], ["delete_alias", "admin", "alias"], ["view_mailboxes", "admin", "mailbox"], ["view_aliases", "admin", "alias"], ["view_domaliases", "admin", "domainalias"], ["add_domainalias", "admin", "domainalias"], ["change_domainalias", "admin", "domainalias"], ["delete_domainalias", "admin", "domainalias"]]}},{"pk": 2, "model": "auth.group", "fields": {"name": "SimpleUsers", "permissions": []}}]
|
||||
@@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
from modoboa.lib.migration_tools import add_permissions_to_group
|
||||
|
||||
PERMISSIONS = [
|
||||
["core", "user", "add_user"],
|
||||
["core", "user", "change_user"],
|
||||
["core", "user", "delete_user"],
|
||||
["admin", "domain", "view_domain"],
|
||||
["admin", "mailbox", "add_mailbox"],
|
||||
["admin", "mailbox", "change_mailbox"],
|
||||
["admin", "mailbox", "delete_mailbox"],
|
||||
["admin", "alias", "add_alias"],
|
||||
["admin", "alias", "change_alias"],
|
||||
["admin", "alias", "delete_alias"],
|
||||
["admin", "mailbox", "view_mailboxes"],
|
||||
["admin", "alias", "view_aliases"],
|
||||
["admin", "domainalias", "view_domainaliases"],
|
||||
["admin", "domainalias", "add_domainalias"],
|
||||
["admin", "domainalias", "change_domainalias"],
|
||||
["admin", "domainalias", "delete_domainalias"]
|
||||
]
|
||||
|
||||
def load_initial_data(apps, schema_editor):
|
||||
"""Load initial data."""
|
||||
Group = apps.get_model("auth", "Group")
|
||||
dadmins = Group.objects.create(name="DomainAdmins")
|
||||
add_permissions_to_group(apps, dadmins, PERMISSIONS)
|
||||
Group.objects.create(name="SimpleUsers")
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('admin', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(load_initial_data)
|
||||
]
|
||||
@@ -1,16 +1,18 @@
|
||||
"""Additional functions available for migration scripts."""
|
||||
|
||||
|
||||
def add_permissions_to_group(apps, groupname, permissions):
|
||||
def add_permissions_to_group(apps, group, permissions):
|
||||
"""Add the specified permissions to a django group."""
|
||||
Group = apps.get_model("auth", "Group")
|
||||
Permission = apps.get_model("auth", "Permission")
|
||||
ContentType = apps.get_model("contenttypes", "ContentType")
|
||||
|
||||
grp = Group.objects.get(name=groupname)
|
||||
if isinstance(group, basestring):
|
||||
Group = apps.get_model("auth", "Group")
|
||||
group = Group.objects.get(name=group)
|
||||
|
||||
for appname, modelname, permname in permissions:
|
||||
ct = ContentType.objects.get_by_natural_key(
|
||||
appname, modelname)
|
||||
grp.permissions.add(
|
||||
group.permissions.add(
|
||||
Permission.objects.get(content_type=ct, codename=permname)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user