Exemple #1
0
def assign_group_permissions(sender, **kwargs):
    """"
    After creation of locale, we have to assign translation and management
    permissions to groups of translators and managers assigned to locale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        locale_ct = ContentType.objects.get(app_label='base', model='locale')
        can_translate = Permission.objects.get(content_type=locale_ct, codename='can_translate_locale')
        can_manage = Permission.objects.get(content_type=locale_ct, codename='can_manage_locale')

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.translators_group,
            permission=can_translate)

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.managers_group,
            permission=can_translate)

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.managers_group,
            permission=can_manage)
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #2
0
def assign_group_permissions(sender, **kwargs):
    """"
    After creation of locale, we have to assign translation and management
    permissions to groups of translators and managers assigned to locale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        locale_ct = ContentType.objects.get(app_label='base', model='locale')
        can_translate = Permission.objects.get(content_type=locale_ct, codename='can_translate_locale')
        can_manage = Permission.objects.get(content_type=locale_ct, codename='can_manage_locale')

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.translators_group,
            permission=can_translate)

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.managers_group,
            permission=can_translate)

        GroupObjectPermission.objects.get_or_create(object_pk=instance.pk,
            content_type=locale_ct,
            group=instance.managers_group,
            permission=can_manage)
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #3
0
def assign_project_locale_group_permissions(sender, **kwargs):
    """
    Assign permissions group to a given ProjectLocale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        assign_group_permissions(instance, 'translators', ['can_translate_project_locale'])
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #4
0
def assign_project_locale_group_permissions(sender, **kwargs):
    """
    Assign permissions group to a given ProjectLocale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        assign_group_permissions(instance, 'translators', ['can_translate_project_locale'])
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #5
0
def create_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators and managers groups for a given Locale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.managers_group is not None:
        return

    try:
        create_group(instance, 'translators', ['can_translate_locale'], '{} translators'.format(instance.code))
        create_group(instance, 'managers', ['can_translate_locale', 'can_manage_locale'], '{} managers'.format(instance.code))  # noqa
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #6
0
def assign_project_locale_group_permissions(sender, **kwargs):
    """
    Assign permissions group to a given ProjectLocale.
    """
    if kwargs["raw"] or not kwargs["created"]:
        return

    instance = kwargs["instance"]

    try:
        assign_group_permissions(instance, "translators",
                                 ["can_translate_project_locale"])
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #7
0
def create_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators and managers groups for a given Locale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.managers_group is not None:
        return

    try:
        create_group(instance, 'translators', ['can_translate_locale'], '{} translators'.format(instance.code))
        create_group(instance, 'managers', ['can_translate_locale', 'can_manage_locale'], '{} managers'.format(instance.code)) # noqa
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #8
0
def assign_locale_group_permissions(sender, **kwargs):
    """
    After creation of locale, we have to assign translation and management
    permissions to groups of translators and managers assigned to locale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        assign_group_permissions(instance, 'translators', ['can_translate_locale'])
        assign_group_permissions(instance, 'managers', ['can_translate_locale', 'can_manage_locale'])
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #9
0
def create_project_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators group for a given ProjectLocale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.translators_group is not None:
        return

    try:
        create_group(instance, 'translators', ['can_translate_project_locale'], '{}/{} translators'.format(
            instance.project.slug, instance.locale.code,
        ))
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #10
0
def create_project_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators group for a given ProjectLocale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.translators_group is not None:
        return

    try:
        create_group(
            instance, 'translators', ['can_translate_project_locale'],
            '{}/{}'.format(instance.project.slug, instance.locale.code))
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #11
0
def assign_locale_group_permissions(sender, **kwargs):
    """
    After creation of locale, we have to assign translation and management
    permissions to groups of translators and managers assigned to locale.
    """
    if kwargs['raw'] or not kwargs['created']:
        return

    instance = kwargs['instance']

    try:
        assign_group_permissions(instance, 'translators', ['can_translate_locale'])
        assign_group_permissions(instance, 'managers', ['can_translate_locale', 'can_manage_locale'])
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #12
0
def assign_locale_group_permissions(sender, **kwargs):
    """
    After creation of locale, we have to assign translation and management
    permissions to groups of translators and managers assigned to locale.
    """
    if kwargs["raw"] or not kwargs["created"]:
        return

    instance = kwargs["instance"]

    try:
        assign_group_permissions(instance, "translators", ["can_translate_locale"])
        assign_group_permissions(
            instance, "managers", ["can_translate_locale", "can_manage_locale"]
        )
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #13
0
def create_locale_translators_group(sender, **kwargs):
    """
    Creates respective translators group in django's permission system.
    Managers should be able to translate and manage locale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.translators_group is not None:
        return

    try:
        locale_ct = ContentType.objects.get(app_label='base', model='locale')
        locale_group, _ = Group.objects.get_or_create(name='{} translators'.format(instance.code))
        can_translate = Permission.objects.get(content_type=locale_ct, codename='can_translate_locale')
        locale_group.permissions.add(can_translate)
        instance.translators_group = locale_group
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #14
0
def create_project_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators group for a given ProjectLocale.
    """
    instance = kwargs["instance"]

    if kwargs["raw"] or instance.translators_group is not None:
        return

    try:
        create_group(
            instance,
            "translators",
            ["can_translate_project_locale"],
            "{}/{}".format(instance.project.slug, instance.locale.code),
        )
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #15
0
def create_locale_translators_group(sender, **kwargs):
    """
    Creates respective translators group in django's permission system.
    Managers should be able to translate and manage locale.
    """
    instance = kwargs['instance']

    if kwargs['raw'] or instance.translators_group is not None:
        return

    try:
        locale_ct = ContentType.objects.get(app_label='base', model='locale')
        locale_group, _ = Group.objects.get_or_create(name='{} translators'.format(instance.code))
        can_translate = Permission.objects.get(content_type=locale_ct, codename='can_translate_locale')
        locale_group.permissions.add(can_translate)
        instance.translators_group = locale_group
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #16
0
def create_locale_permissions_groups(sender, **kwargs):
    """
    Creates translators and managers groups for a given Locale.
    """
    instance = kwargs["instance"]

    if kwargs["raw"] or instance.managers_group is not None:
        return

    try:
        create_group(instance, "translators", ["can_translate_locale"], instance.code)
        create_group(
            instance,
            "managers",
            ["can_translate_locale", "can_manage_locale"],
            instance.code,
        )
    except ObjectDoesNotExist as e:
        errors.send_exception(e)
Exemple #17
0
 def on_failure(self, exc, task_id, args, kwargs, einfo):
     # Celery throws away the traceback instance and creates its own,
     # but inspect can't process their custom class.
     _, _, traceback = sys.exc_info()
     send_exception(exc, exc_info=(einfo.type, exc, traceback))
Exemple #18
0
 def on_failure(self, exc, task_id, args, kwargs, einfo):
     # Celery throws away the traceback instance and creates its own,
     # but inspect can't process their custom class.
     _, _, traceback = sys.exc_info()
     send_exception(exc, exc_info=(einfo.type, exc, traceback))