Esempio n. 1
0
def group_members_add(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)

    if not group.user_is_role(request.user, role="manager") and not request.user.is_superuser:
        return HttpResponseForbidden()

    form = GroupMemberForm(request.POST)

    if form.is_valid():
        role = form.cleaned_data["role"]
        for user in form.cleaned_data["user_identifiers"]:
            try:
                group_member = GroupMember.objects.get(group=group, user=user)
            except GroupMember.DoesNotExist:
                pass
            else:
                if group_member.role == 'manager':
                    permissions = UserObjectPermission.objects.filter(user=user)
                    for layer in Layer.objects.filter(group=group):
                        if layer.owner != user:
                            permissions.filter(object_pk=layer.pk).delete()
            group.join(user, role=role)
        if role == 'manager':
            for layer in Layer.objects.filter(group=group):
                layer.set_managers_permissions()

    return redirect("group_detail", slug=group.slug)
Esempio n. 2
0
def group_members_add(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)

    if not group.user_is_role(request.user, role="manager") and not request.user.is_superuser:
        return HttpResponseForbidden()

    form = GroupMemberForm(request.POST)

    if form.is_valid():
        role = form.cleaned_data["role"]
        for user in form.cleaned_data["user_identifiers"]:
            try:
                group_member = GroupMember.objects.get(group=group, user=user)
            except GroupMember.DoesNotExist:
                pass
            else:
                if group_member.role == 'manager':
                    permissions = UserObjectPermission.objects.filter(user=user)
                    for layer in Layer.objects.filter(group=group):
                        if layer.owner != user:
                            permissions.filter(object_pk=layer.pk).delete()
            group.join(user, role=role)
        if role == 'manager':
            for layer in Layer.objects.filter(group=group):
                layer.set_managers_permissions()

    return redirect("group_detail", slug=group.slug)
Esempio n. 3
0
def group_members_add(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)

    if not group.user_is_role(request.user, role="manager"):
        return HttpResponseForbidden()

    form = GroupMemberForm(request.POST)

    if form.is_valid():
        role = form.cleaned_data["role"]
        for user in form.cleaned_data["user_identifiers"]:
            group.join(user, role=role)

    return redirect("group_detail", slug=group.slug)
Esempio n. 4
0
def initiative_members_add(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)

    if not group.user_is_role(request.user, role="manager"):
        return HttpResponseForbidden()

    form = GroupMemberForm(request.POST)

    if form.is_valid():
        role = form.cleaned_data["role"]
        for user in form.cleaned_data["user_identifiers"]:
            group.join(user, role=role)

    return redirect("initiative_detail", slug=group.slug)
Esempio n. 5
0
def initiative_members(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)
    ctx = {}

    if not group.can_view(request.user):
        raise Http404()

    if group.access in [
            "public-invite",
            "private"] and group.user_is_role(
            request.user,
            "manager"):
        ctx["invite_form"] = GroupInviteForm()

    if group.user_is_role(request.user, "manager"):
        ctx["member_form"] = GroupMemberForm()

    ctx.update({
        "group": group,
        "members": group.member_queryset(),
        "is_member": group.user_is_member(request.user),
        "is_manager": group.user_is_role(request.user, "manager"),
    })
    ctx = RequestContext(request, ctx)
    return render_to_response("groups/initiative_members.html", ctx)
Esempio n. 6
0
def group_members_add(request, slug):
    group = get_object_or_404(GroupProfile, slug=slug)

    if not group.user_is_role(request.user, role="manager"):
        return HttpResponseForbidden()

    form = GroupMemberForm(request.POST)

    if form.is_valid():
        role = form.cleaned_data["role"]
        for user in form.cleaned_data["user_identifiers"]:
            # dont add them if already a member, just update the role
            try:
                gm = GroupMember.objects.get(user=user, group=group)
                gm.role = role
                gm.save()
            except:
                gm = GroupMember(user=user, group=group, role=role)
                gm.save()
    return redirect("group_detail", slug=group.slug)