# -*- coding: utf-8 -*-
# Generated by Django 1.10.7 on 2018-01-07 21:45
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [("users", "0067_serveurpermission")]

    def transfer_permissions(apps, schema_editor):
        critical_rights = [
            "adm",
            "admin",
            "bureau",
            "infra",
            "tresorier",
            "serveur",
            "bofh",
        ]
        db_alias = schema_editor.connection.alias
        rights = apps.get_model("users", "ListRight")
        for right in critical_rights:
            rg = rights.objects.using(db_alias).filter(unix_name=right).first()
            if rg:
                rg.critical = True
                rg.save()

    def untransfer_permissions(apps, schema_editor):
        return

    operations = [
        migrations.AlterModelOptions(
            name="user",
            options={
                "permissions": (
                    ("change_user_password", "Peut changer le mot de passe d'un user"),
                    ("change_user_state", "Peut éditer l'etat d'un user"),
                    ("change_user_force", "Peut forcer un déménagement"),
                    ("change_user_shell", "Peut éditer le shell d'un user"),
                    (
                        "change_user_groups",
                        "Peut éditer les groupes d'un user ! Permission critique",
                    ),
                    (
                        "change_all_users",
                        "Peut éditer tous les users, y compris ceux dotés de droits. Superdroit",
                    ),
                    ("view_user", "Peut voir un objet user quelquonque"),
                )
            },
        ),
        migrations.AddField(
            model_name="listright",
            name="critical",
            field=models.BooleanField(default=False),
        ),
        migrations.RunPython(transfer_permissions, untransfer_permissions),
    ]
