Example #1
0
    def apply_state_group_membership(self):
        from .job_category import JobCategory

        groups_to_add = set()
        groups_to_remove = set()

        for group_suffix in SIGNUP_STATE_GROUPS:
            should_belong_to_group = getattr(self, 'is_{group_suffix}'.format(group_suffix=group_suffix))
            group = self.event.labour_event_meta.get_group(group_suffix)

            if should_belong_to_group:
                groups_to_add.add(group)
            else:
                groups_to_remove.add(group)

        for job_category in JobCategory.objects.filter(event=self.event):
            should_belong_to_group = self.job_categories_accepted.filter(pk=job_category.pk).exists()
            group = self.event.labour_event_meta.get_group(job_category.slug)

            if should_belong_to_group:
                groups_to_add.add(group)
            else:
                groups_to_remove.add(group)

        ensure_user_group_membership(self.person.user, groups_to_add, groups_to_remove)
Example #2
0
    def apply_state_group_membership(self):
        from django.contrib.auth.models import Group
        from core.utils import ensure_user_group_membership
        from .programme_role import ProgrammeRole

        try:
            group = self.event.programme_event_meta.get_group('hosts')
        except Group.DoesNotExist:
            logger.warning('Event %s missing the programme hosts group',
                           self.event)
            return

        for person in self.organizers.all():
            assert person.user

            if ProgrammeRole.objects.filter(
                    programme__category__event=self.event,
                    programme__state__in=PROGRAMME_STATES_ACTIVE,
                    person=person,
            ).exists():
                # active programmist
                groups_to_add = [group]
                groups_to_remove = []
            else:
                # inactive programmist
                groups_to_add = []
                groups_to_remove = [group]

            ensure_user_group_membership(person.user,
                                         groups_to_add=groups_to_add,
                                         groups_to_remove=groups_to_remove)
Example #3
0
    def apply_state_group_membership(self):
        from .programme_role import ProgrammeRole
        from core.utils import ensure_user_group_membership

        group = self.event.programme_event_meta.get_group('hosts')

        for person in self.organizers.all():
            assert person.user

            if ProgrammeRole.objects.filter(
                programme__category__event=self.event,
                programme__state__in=PROGRAMME_STATES_ACTIVE,
                person=person,
            ).exists():
                # active programmist
                groups_to_add = [group]
                groups_to_remove = []
            else:
                # inactive programmist
                groups_to_add = []
                groups_to_remove = [group]

            ensure_user_group_membership(person.user,
                groups_to_add=groups_to_add,
                groups_to_remove=groups_to_remove
            )
Example #4
0
    def apply_state_group_membership(self):
        from django.contrib.auth.models import Group
        from core.utils import ensure_user_group_membership
        from .programme_role import ProgrammeRole

        try:
            group = self.event.programme_event_meta.get_group('hosts')
        except Group.DoesNotExist:
            logger.warning('Event %s missing the programme hosts group', self.event)
            return

        for person in self.organizers.all():
            assert person.user

            if ProgrammeRole.objects.filter(
                programme__category__event=self.event,
                programme__state__in=PROGRAMME_STATES_ACTIVE,
                person=person,
            ).exists():
                # active programmist
                groups_to_add = [group]
                groups_to_remove = []
            else:
                # inactive programmist
                groups_to_add = []
                groups_to_remove = [group]

            ensure_user_group_membership(person.user,
                groups_to_add=groups_to_add,
                groups_to_remove=groups_to_remove
            )
Example #5
0
def add_to_group(privilege, person):
    """
    Generic "add person to group" privilege. The group to add is taken from the privilege slug.
    """

    group = Group.objects.get(name=privilege.slug)
    ensure_user_group_membership(person.user, groups_to_add=[group])
Example #6
0
def add_to_group(privilege, person):
    """
    Generic "add person to group" privilege. The group to add is taken from the privilege slug.
    """

    group = Group.objects.get(name=privilege.slug)
    ensure_user_group_membership(person.user, groups_to_add=[group])
Example #7
0
    def _apply_state_group_membership(self):
        if self.person.user:
            members_group = self.organization.membership_organization_meta.members_group

            if self.is_in_effect:
                groups_to_add = [members_group]
                groups_to_remove = []
            else:
                groups_to_add = []
                groups_to_remove = [members_group]

            ensure_user_group_membership(self.person.user, groups_to_add, groups_to_remove)
Example #8
0
    def _apply_state_group_membership(self):
        if self.person.user:
            members_group = self.organization.membership_organization_meta.members_group

            if self.is_in_effect:
                groups_to_add = [members_group]
                groups_to_remove = []
            else:
                groups_to_add = []
                groups_to_remove = [members_group]

            ensure_user_group_membership(self.person.user, groups_to_add, groups_to_remove)
Example #9
0
    def apply_state_group_membership(self):
        from .job_category import JobCategory
        from .personnel_class import PersonnelClass

        groups_to_add = set()
        groups_to_remove = set()

        for group_suffix in SIGNUP_STATE_GROUPS:
            should_belong_to_group = getattr(
                self, 'is_{group_suffix}'.format(group_suffix=group_suffix))
            group = self.event.labour_event_meta.get_group(group_suffix)

            if should_belong_to_group:
                groups_to_add.add(group)
            else:
                groups_to_remove.add(group)

        for job_category in JobCategory.objects.filter(event=self.event):
            should_belong_to_group = self.job_categories_accepted.filter(
                pk=job_category.pk).exists()
            group = self.event.labour_event_meta.get_group(job_category.slug)

            if should_belong_to_group:
                groups_to_add.add(group)
            else:
                groups_to_remove.add(group)

        for personnel_class in PersonnelClass.objects.filter(
                event=self.event, app_label='labour'):
            should_belong_to_group = self.personnel_classes.filter(
                pk=personnel_class.pk).exists()
            group = self.event.labour_event_meta.get_group(
                personnel_class.slug)

            if should_belong_to_group:
                groups_to_add.add(group)
            else:
                groups_to_remove.add(group)

        ensure_user_group_membership(self.person.user, groups_to_add,
                                     groups_to_remove)